Testing Navigasi
This commit is contained in:
		
							parent
							
								
									ff3185b914
								
							
						
					
					
						commit
						9c7b40a50a
					
				@ -82,6 +82,7 @@ dependencies {
 | 
				
			|||||||
    implementation("androidx.lifecycle:lifecycle-viewmodel-savedstate:${rootProject.extra["lifecycle_version"]}")
 | 
					    implementation("androidx.lifecycle:lifecycle-viewmodel-savedstate:${rootProject.extra["lifecycle_version"]}")
 | 
				
			||||||
    implementation("androidx.navigation:navigation-compose:2.7.4")
 | 
					    implementation("androidx.navigation:navigation-compose:2.7.4")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Testing Depedencies
 | 
				
			||||||
    androidTestImplementation(platform("androidx.compose:compose-bom:2023.10.01"))
 | 
					    androidTestImplementation(platform("androidx.compose:compose-bom:2023.10.01"))
 | 
				
			||||||
    androidTestImplementation("androidx.compose.ui:ui-test-junit4")
 | 
					    androidTestImplementation("androidx.compose.ui:ui-test-junit4")
 | 
				
			||||||
    androidTestImplementation("androidx.navigation:navigation-testing:2.7.4")
 | 
					    androidTestImplementation("androidx.navigation:navigation-testing:2.7.4")
 | 
				
			||||||
 | 
				
			|||||||
@ -39,7 +39,7 @@ class CupcakeScreenNavigationTest {
 | 
				
			|||||||
     * Note: To access to an empty activity, the code uses ComponentActivity instead of
 | 
					     * Note: To access to an empty activity, the code uses ComponentActivity instead of
 | 
				
			||||||
     * MainActivity.
 | 
					     * MainActivity.
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    @get:Rule
 | 
					    @get:Rule // Aturan Pengujian
 | 
				
			||||||
    val composeTestRule = createAndroidComposeRule<ComponentActivity>()
 | 
					    val composeTestRule = createAndroidComposeRule<ComponentActivity>()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private lateinit var navController: TestNavHostController
 | 
					    private lateinit var navController: TestNavHostController
 | 
				
			||||||
@ -54,17 +54,20 @@ class CupcakeScreenNavigationTest {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Testing Verifikasi Tujuan Awal Aplikasi Dimulai
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    fun cupcakeNavHost_verifyStartDestination() {
 | 
					    fun cupcakeNavHost_verifyStartDestination() {
 | 
				
			||||||
        navController.assertCurrentRouteName(CupcakeScreen.Start.name)
 | 
					        navController.assertCurrentRouteName(CupcakeScreen.Start.name)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Testing Fungsi Tombol Kembali di Menu Awal (Tidak ada tombol kembali)
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    fun cupcakeNavHost_verifyBackNavigationNotShownOnStartOrderScreen() {
 | 
					    fun cupcakeNavHost_verifyBackNavigationNotShownOnStartOrderScreen() {
 | 
				
			||||||
        val backText = composeTestRule.activity.getString(R.string.back_button)
 | 
					        val backText = composeTestRule.activity.getString(R.string.back_button)
 | 
				
			||||||
        composeTestRule.onNodeWithContentDescription(backText).assertDoesNotExist()
 | 
					        composeTestRule.onNodeWithContentDescription(backText).assertDoesNotExist()
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Testing Pilih Opsi --> Navigasi Ke Halaman Flavor
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    fun cupcakeNavHost_clickOneCupcake_navigatesToSelectFlavorScreen() {
 | 
					    fun cupcakeNavHost_clickOneCupcake_navigatesToSelectFlavorScreen() {
 | 
				
			||||||
        composeTestRule.onNodeWithStringId(R.string.one_cupcake)
 | 
					        composeTestRule.onNodeWithStringId(R.string.one_cupcake)
 | 
				
			||||||
@ -72,6 +75,7 @@ class CupcakeScreenNavigationTest {
 | 
				
			|||||||
        navController.assertCurrentRouteName(CupcakeScreen.Flavor.name)
 | 
					        navController.assertCurrentRouteName(CupcakeScreen.Flavor.name)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Testing Next Button --> Navigasi Ke Halaman Pickup (Flavor)
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    fun cupcakeNavHost_clickNextOnFlavorScreen_navigatesToPickupScreen() {
 | 
					    fun cupcakeNavHost_clickNextOnFlavorScreen_navigatesToPickupScreen() {
 | 
				
			||||||
        navigateToFlavorScreen()
 | 
					        navigateToFlavorScreen()
 | 
				
			||||||
@ -80,6 +84,7 @@ class CupcakeScreenNavigationTest {
 | 
				
			|||||||
        navController.assertCurrentRouteName(CupcakeScreen.Pickup.name)
 | 
					        navController.assertCurrentRouteName(CupcakeScreen.Pickup.name)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Testing Back Button --> Navigasi Ke Halaman Awal (Flavor)
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    fun cupcakeNavHost_clickBackOnFlavorScreen_navigatesToStartOrderScreen() {
 | 
					    fun cupcakeNavHost_clickBackOnFlavorScreen_navigatesToStartOrderScreen() {
 | 
				
			||||||
        navigateToFlavorScreen()
 | 
					        navigateToFlavorScreen()
 | 
				
			||||||
@ -87,6 +92,7 @@ class CupcakeScreenNavigationTest {
 | 
				
			|||||||
        navController.assertCurrentRouteName(CupcakeScreen.Start.name)
 | 
					        navController.assertCurrentRouteName(CupcakeScreen.Start.name)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Testing Cancel Button --> Navigasi Ke Halaman Awal (Flavor)
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    fun cupcakeNavHost_clickCancelOnFlavorScreen_navigatesToStartOrderScreen() {
 | 
					    fun cupcakeNavHost_clickCancelOnFlavorScreen_navigatesToStartOrderScreen() {
 | 
				
			||||||
        navigateToFlavorScreen()
 | 
					        navigateToFlavorScreen()
 | 
				
			||||||
@ -95,6 +101,7 @@ class CupcakeScreenNavigationTest {
 | 
				
			|||||||
        navController.assertCurrentRouteName(CupcakeScreen.Start.name)
 | 
					        navController.assertCurrentRouteName(CupcakeScreen.Start.name)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Testing Next Button --> Navigasi Ke Halaman Summary (Pickup)
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    fun cupcakeNavHost_clickNextOnPickupScreen_navigatesToSummaryScreen() {
 | 
					    fun cupcakeNavHost_clickNextOnPickupScreen_navigatesToSummaryScreen() {
 | 
				
			||||||
        navigateToPickupScreen()
 | 
					        navigateToPickupScreen()
 | 
				
			||||||
@ -105,6 +112,7 @@ class CupcakeScreenNavigationTest {
 | 
				
			|||||||
        navController.assertCurrentRouteName(CupcakeScreen.Summary.name)
 | 
					        navController.assertCurrentRouteName(CupcakeScreen.Summary.name)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Testing Back Button --> Navigasi Ke Halaman Flavor (Pickup)
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    fun cupcakeNavHost_clickBackOnPickupScreen_navigatesToFlavorScreen() {
 | 
					    fun cupcakeNavHost_clickBackOnPickupScreen_navigatesToFlavorScreen() {
 | 
				
			||||||
        navigateToPickupScreen()
 | 
					        navigateToPickupScreen()
 | 
				
			||||||
@ -112,6 +120,7 @@ class CupcakeScreenNavigationTest {
 | 
				
			|||||||
        navController.assertCurrentRouteName(CupcakeScreen.Flavor.name)
 | 
					        navController.assertCurrentRouteName(CupcakeScreen.Flavor.name)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Testing Cancel Button --> Navigasi Ke Halaman Awal (Pickup)
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    fun cupcakeNavHost_clickCancelOnPickupScreen_navigatesToStartOrderScreen() {
 | 
					    fun cupcakeNavHost_clickCancelOnPickupScreen_navigatesToStartOrderScreen() {
 | 
				
			||||||
        navigateToPickupScreen()
 | 
					        navigateToPickupScreen()
 | 
				
			||||||
@ -120,6 +129,7 @@ class CupcakeScreenNavigationTest {
 | 
				
			|||||||
        navController.assertCurrentRouteName(CupcakeScreen.Start.name)
 | 
					        navController.assertCurrentRouteName(CupcakeScreen.Start.name)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Testing Cancel Button --> Navigasi Ke Halaman Awal (Summary)
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    fun cupcakeNavHost_clickCancelOnSummaryScreen_navigatesToStartOrderScreen() {
 | 
					    fun cupcakeNavHost_clickCancelOnSummaryScreen_navigatesToStartOrderScreen() {
 | 
				
			||||||
        navigateToSummaryScreen()
 | 
					        navigateToSummaryScreen()
 | 
				
			||||||
@ -128,6 +138,8 @@ class CupcakeScreenNavigationTest {
 | 
				
			|||||||
        navController.assertCurrentRouteName(CupcakeScreen.Start.name)
 | 
					        navController.assertCurrentRouteName(CupcakeScreen.Start.name)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // FUNGSI NAVIGASI HALAMAN
 | 
				
			||||||
    private fun navigateToFlavorScreen() {
 | 
					    private fun navigateToFlavorScreen() {
 | 
				
			||||||
        composeTestRule.onNodeWithStringId(R.string.one_cupcake)
 | 
					        composeTestRule.onNodeWithStringId(R.string.one_cupcake)
 | 
				
			||||||
            .performClick()
 | 
					            .performClick()
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user