Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
new-silvermoon avatar

Android Testing

  • 2 installs
  • 910 repo stars
  • Updated July 27, 2026
  • new-silvermoon/awesome-android-skills

Covers an Android testing strategy across unit, Hilt integration, and Compose screenshot tests, inspired by Now in Android, with the right test dependencies.

About

Provides a testing-pyramid strategy for modern Android apps spanning unit tests, Hilt integration tests, MockWebServer, and Roborazzi screenshot tests. A developer uses it when setting up or expanding an Android test suite.

  • Testing pyramid: unit, integration (Room/Retrofit+MockWebServer), UI/screenshot
  • Roborazzi and Hilt testing dependency setup

Android Testing by the numbers

  • 2 all-time installs (skills.sh)
  • Ranked #942 of 1,039 Mobile Development skills by installs in the Skillselion catalog
  • Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/new-silvermoon/awesome-android-skills --skill android-testing

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs2
repo stars910
Last updatedJuly 27, 2026
Repositorynew-silvermoon/awesome-android-skills

What it does

Covers an Android testing strategy across unit, Hilt integration, and Compose screenshot tests, inspired by Now in Android, with the right test dependencies.

Files

SKILL.mdMarkdownGitHub ↗

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)

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.