android-testing

new-silvermoon/awesome-android-agent-skills · updated Apr 8, 2026

$npx skills add https://github.com/new-silvermoon/awesome-android-agent-skills --skill android-testing
0 commentsdiscussion
summary

This skill provides expert guidance on testing modern Android applications, inspired by "Now in Android". It covers Unit Tests, Hilt Integration Tests, and Screenshot Testing.

skill.md

Android Testing Strategies

This skill provides expert guidance on testing modern Android applications, inspired by "Now in Android". It covers Unit Tests, Hilt Integration Tests, and Screenshot Testing.

Testing Pyramid

  1. Unit Tests: Fast, isolate logic (ViewModels, Repositories).
  2. Integration Tests: Test interactions (Room DAOs, Retrofit vs MockWebServer).
  3. UI/Screenshot Tests: Verify UI correctness (Compose).

Dependencies (libs.versions.toml)

Ensure you have the right testing dependencies.

[libraries]
junit4 = { module = "junit:junit", version = "4.13.2" }
kotlinx-coroutines-test = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-test", version.ref = "kotlinxCoroutines" }
androidx-test-ext-junit = { group = "androidx.test.ext", name = "junit", version = "1.1.5" }
espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version = "3.5.1" }
compose-ui-test = { group = "androidx.compose.ui", name = "ui-test-junit4" }
hilt-android-testing = { group = "com.google.dagger", name = "hilt-android-testing", version.ref = "hilt" }
roborazzi = { group = "io.github.takahirom.roborazzi", name = "roborazzi", version.ref = "roborazzi" }

Screenshot Testing with Roborazzi

Screenshot tests ensure your UI doesn't regress visually. NiA uses Roborazzi because it runs on the JVM (fast) without needing an emulator.

Setup

  1. Add the plugin to libs.versions.toml:
    [plugins]
    roborazzi = { id = "io.github.takahirom.roborazzi", version.ref = "roborazzi" }
    
  2. Apply it in your module's build.gradle.kts:
    plugins {
        alias(libs.plugins.roborazzi)
    }
    

Writing a Screenshot Test

@RunWith(AndroidJUnit4::class)
@GraphicsMode(GraphicsMode.Mode.NATIVE)
@Config(sdk = [33], qualifiers = RobolectricDeviceQualifiers.Pixel5)
class MyScreenScreenshotTest {

    @get:Rule
    val composeTestRule = createAndroidComposeRule<ComponentActivity>()

    @Test
    fun captureMyScreen() {
        composeTestRule.setContent {
            MyTheme {
                MyScreen()
            }
        }

        composeTestRule.onRoot()
            .captureRoboImage()
    }
}

Hilt Testing

Use HiltAndroidRule to inject dependencies in tests.

@HiltAndroidTest
class MyDaoTest {

    @get:Rule
    var hiltRule = HiltAndroidRule(this)

    @Inject
    lateinit var database: MyDatabase
    private lateinit var dao: MyDao

    @Before
    fun init() {
        hiltRule.inject()
        dao = database.myDao()
    }
    
    // ... tests
}

Running Tests

  • Unit: ./gradlew test
  • Screenshots: ./gradlew recordRoborazziDebug (to record) / ./gradlew verifyRoborazziDebug (to verify)

Discussion

Product Hunt–style comments (not star reviews)
  • No comments yet — start the thread.
general reviews

Ratings

4.665 reviews
  • Maya Patel· Dec 28, 2024

    I recommend android-testing for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.

  • Ganesh Mohane· Dec 24, 2024

    Useful defaults in android-testing — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.

  • Naina Robinson· Dec 16, 2024

    Keeps context tight: android-testing is the kind of skill you can hand to a new teammate without a long onboarding doc.

  • Hassan Nasser· Dec 16, 2024

    Useful defaults in android-testing — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.

  • Maya Rao· Dec 12, 2024

    Registry listing for android-testing matched our evaluation — installs cleanly and behaves as described in the markdown.

  • Zaid Liu· Dec 8, 2024

    android-testing is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.

  • Sakshi Patil· Nov 27, 2024

    We added android-testing from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.

  • Maya Anderson· Nov 27, 2024

    android-testing reduced setup friction for our internal harness; good balance of opinion and flexibility.

  • Maya Chen· Nov 19, 2024

    Solid pick for teams standardizing on skills: android-testing is focused, and the summary matches what you get after install.

  • Rahul Santra· Nov 15, 2024

    android-testing has been reliable in day-to-day use. Documentation quality is above average for community skills.

showing 1-10 of 65

1 / 7