diff --git a/JetNews/app/build.gradle.kts b/JetNews/app/build.gradle.kts index f0cad0c93b..b827bd22b4 100644 --- a/JetNews/app/build.gradle.kts +++ b/JetNews/app/build.gradle.kts @@ -60,24 +60,6 @@ android { } } - testOptions { - unitTests { - isReturnDefaultValues = true - isIncludeAndroidResources = true - } - } - - // Tests can be Robolectric or instrumented tests - sourceSets { - val sharedTestDir = "src/sharedTest/java" - getByName("test") { - java.srcDir(sharedTestDir) - } - getByName("androidTest") { - java.srcDir(sharedTestDir) - } - } - compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 @@ -146,11 +128,5 @@ dependencies { androidTestImplementation(libs.kotlinx.coroutines.test) androidTestImplementation(libs.androidx.compose.ui.test) androidTestImplementation(libs.androidx.compose.ui.test.junit4) - // Robolectric dependencies - testImplementation(libs.androidx.compose.ui.test.junit4) - testImplementation(libs.robolectric) } -tasks.withType().configureEach { - systemProperties.put("robolectric.logging", "stdout") -} diff --git a/JetNews/app/src/sharedTest/java/com/example/jetnews/HomeScreenTests.kt b/JetNews/app/src/androidTest/java/com/example/jetnews/HomeScreenTests.kt similarity index 100% rename from JetNews/app/src/sharedTest/java/com/example/jetnews/HomeScreenTests.kt rename to JetNews/app/src/androidTest/java/com/example/jetnews/HomeScreenTests.kt diff --git a/JetNews/app/src/sharedTest/java/com/example/jetnews/JetnewsTests.kt b/JetNews/app/src/androidTest/java/com/example/jetnews/JetnewsTests.kt similarity index 76% rename from JetNews/app/src/sharedTest/java/com/example/jetnews/JetnewsTests.kt rename to JetNews/app/src/androidTest/java/com/example/jetnews/JetnewsTests.kt index ed48a5ecc3..bd02498cdd 100644 --- a/JetNews/app/src/sharedTest/java/com/example/jetnews/JetnewsTests.kt +++ b/JetNews/app/src/androidTest/java/com/example/jetnews/JetnewsTests.kt @@ -16,8 +16,10 @@ package com.example.jetnews +import androidx.activity.ComponentActivity +import androidx.compose.ui.test.ExperimentalTestApi import androidx.compose.ui.test.hasText -import androidx.compose.ui.test.junit4.createComposeRule +import androidx.compose.ui.test.junit4.createAndroidComposeRule import androidx.compose.ui.test.onNodeWithContentDescription import androidx.compose.ui.test.onNodeWithText import androidx.compose.ui.test.onRoot @@ -25,16 +27,18 @@ import androidx.compose.ui.test.performClick import androidx.compose.ui.test.printToString import androidx.test.core.app.ApplicationProvider import androidx.test.ext.junit.runners.AndroidJUnit4 +import com.example.jetnews.data.posts.impl.manuel import org.junit.Before import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith +@OptIn(ExperimentalTestApi::class) @RunWith(AndroidJUnit4::class) class JetnewsTests { @get:Rule - val composeTestRule = createComposeRule() + val composeTestRule = createAndroidComposeRule() @Before fun setUp() { @@ -44,14 +48,16 @@ class JetnewsTests { @Test fun app_launches() { - composeTestRule.onNodeWithText("Top stories for you").assertExists() + composeTestRule + .onNodeWithText(composeTestRule.activity.getString(R.string.home_top_section_title)) + .assertExists() } @Test fun app_opensArticle() { println(composeTestRule.onRoot().printToString()) - composeTestRule.onAllNodes(hasText("Manuel Vivo", substring = true))[0].performClick() + composeTestRule.onAllNodes(hasText(manuel.name, substring = true))[0].performClick() println(composeTestRule.onRoot().printToString()) try { @@ -69,7 +75,6 @@ class JetnewsTests { useUnmergedTree = true ).performClick() composeTestRule.onNodeWithText("Interests").performClick() - // TODO - this fails on CI but not locally. (https://github.com/android/compose-samples/issues/1442) - // composeTestRule.waitUntilAtLeastOneExists(hasText("Topics"), 5000L) + composeTestRule.waitUntilAtLeastOneExists(hasText("Topics"), 5000L) } } diff --git a/JetNews/app/src/sharedTest/java/com/example/jetnews/TestAppContainer.kt b/JetNews/app/src/androidTest/java/com/example/jetnews/TestAppContainer.kt similarity index 100% rename from JetNews/app/src/sharedTest/java/com/example/jetnews/TestAppContainer.kt rename to JetNews/app/src/androidTest/java/com/example/jetnews/TestAppContainer.kt diff --git a/JetNews/app/src/sharedTest/java/com/example/jetnews/TestHelper.kt b/JetNews/app/src/androidTest/java/com/example/jetnews/TestHelper.kt similarity index 100% rename from JetNews/app/src/sharedTest/java/com/example/jetnews/TestHelper.kt rename to JetNews/app/src/androidTest/java/com/example/jetnews/TestHelper.kt diff --git a/JetNews/app/src/test/resources/robolectric.properties b/JetNews/app/src/test/resources/robolectric.properties deleted file mode 100644 index 54ee43225e..0000000000 --- a/JetNews/app/src/test/resources/robolectric.properties +++ /dev/null @@ -1,8 +0,0 @@ -# Pin SDK to 30 since Robolectric does not currently support API 31: -# https://github.com/robolectric/robolectric/issues/6635 -sdk=30 -# Similar to Galaxy Nexus device profile -qualifiers=w360dp-h640dp-xhdpi - -# Workaround for https://github.com/robolectric/robolectric/issues/6593 -instrumentedPackages=androidx.loader.content