From 9c7b40a50a4092856b918560a1ddd7c5edc64e1d Mon Sep 17 00:00:00 2001 From: Raihan Ariq <202310715297@mhs.ubharajaya.ac.id> Date: Thu, 23 Oct 2025 16:25:18 +0700 Subject: [PATCH] Testing Navigasi --- app/build.gradle.kts | 1 + .../cupcake/test/CupcakeScreenNavigationTest.kt | 14 +++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 28abb3d..bce9860 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -82,6 +82,7 @@ dependencies { implementation("androidx.lifecycle:lifecycle-viewmodel-savedstate:${rootProject.extra["lifecycle_version"]}") implementation("androidx.navigation:navigation-compose:2.7.4") + // Testing Depedencies androidTestImplementation(platform("androidx.compose:compose-bom:2023.10.01")) androidTestImplementation("androidx.compose.ui:ui-test-junit4") androidTestImplementation("androidx.navigation:navigation-testing:2.7.4") diff --git a/app/src/androidTest/java/com/example/cupcake/test/CupcakeScreenNavigationTest.kt b/app/src/androidTest/java/com/example/cupcake/test/CupcakeScreenNavigationTest.kt index 1ab7f77..0332c50 100644 --- a/app/src/androidTest/java/com/example/cupcake/test/CupcakeScreenNavigationTest.kt +++ b/app/src/androidTest/java/com/example/cupcake/test/CupcakeScreenNavigationTest.kt @@ -39,7 +39,7 @@ class CupcakeScreenNavigationTest { * Note: To access to an empty activity, the code uses ComponentActivity instead of * MainActivity. */ - @get:Rule + @get:Rule // Aturan Pengujian val composeTestRule = createAndroidComposeRule() private lateinit var navController: TestNavHostController @@ -54,17 +54,20 @@ class CupcakeScreenNavigationTest { } } + // Testing Verifikasi Tujuan Awal Aplikasi Dimulai @Test fun cupcakeNavHost_verifyStartDestination() { navController.assertCurrentRouteName(CupcakeScreen.Start.name) } + // Testing Fungsi Tombol Kembali di Menu Awal (Tidak ada tombol kembali) @Test fun cupcakeNavHost_verifyBackNavigationNotShownOnStartOrderScreen() { val backText = composeTestRule.activity.getString(R.string.back_button) composeTestRule.onNodeWithContentDescription(backText).assertDoesNotExist() } + // Testing Pilih Opsi --> Navigasi Ke Halaman Flavor @Test fun cupcakeNavHost_clickOneCupcake_navigatesToSelectFlavorScreen() { composeTestRule.onNodeWithStringId(R.string.one_cupcake) @@ -72,6 +75,7 @@ class CupcakeScreenNavigationTest { navController.assertCurrentRouteName(CupcakeScreen.Flavor.name) } + // Testing Next Button --> Navigasi Ke Halaman Pickup (Flavor) @Test fun cupcakeNavHost_clickNextOnFlavorScreen_navigatesToPickupScreen() { navigateToFlavorScreen() @@ -80,6 +84,7 @@ class CupcakeScreenNavigationTest { navController.assertCurrentRouteName(CupcakeScreen.Pickup.name) } + // Testing Back Button --> Navigasi Ke Halaman Awal (Flavor) @Test fun cupcakeNavHost_clickBackOnFlavorScreen_navigatesToStartOrderScreen() { navigateToFlavorScreen() @@ -87,6 +92,7 @@ class CupcakeScreenNavigationTest { navController.assertCurrentRouteName(CupcakeScreen.Start.name) } + // Testing Cancel Button --> Navigasi Ke Halaman Awal (Flavor) @Test fun cupcakeNavHost_clickCancelOnFlavorScreen_navigatesToStartOrderScreen() { navigateToFlavorScreen() @@ -95,6 +101,7 @@ class CupcakeScreenNavigationTest { navController.assertCurrentRouteName(CupcakeScreen.Start.name) } + // Testing Next Button --> Navigasi Ke Halaman Summary (Pickup) @Test fun cupcakeNavHost_clickNextOnPickupScreen_navigatesToSummaryScreen() { navigateToPickupScreen() @@ -105,6 +112,7 @@ class CupcakeScreenNavigationTest { navController.assertCurrentRouteName(CupcakeScreen.Summary.name) } + // Testing Back Button --> Navigasi Ke Halaman Flavor (Pickup) @Test fun cupcakeNavHost_clickBackOnPickupScreen_navigatesToFlavorScreen() { navigateToPickupScreen() @@ -112,6 +120,7 @@ class CupcakeScreenNavigationTest { navController.assertCurrentRouteName(CupcakeScreen.Flavor.name) } + // Testing Cancel Button --> Navigasi Ke Halaman Awal (Pickup) @Test fun cupcakeNavHost_clickCancelOnPickupScreen_navigatesToStartOrderScreen() { navigateToPickupScreen() @@ -120,6 +129,7 @@ class CupcakeScreenNavigationTest { navController.assertCurrentRouteName(CupcakeScreen.Start.name) } + // Testing Cancel Button --> Navigasi Ke Halaman Awal (Summary) @Test fun cupcakeNavHost_clickCancelOnSummaryScreen_navigatesToStartOrderScreen() { navigateToSummaryScreen() @@ -128,6 +138,8 @@ class CupcakeScreenNavigationTest { navController.assertCurrentRouteName(CupcakeScreen.Start.name) } + + // FUNGSI NAVIGASI HALAMAN private fun navigateToFlavorScreen() { composeTestRule.onNodeWithStringId(R.string.one_cupcake) .performClick()