本文へ移動
cccskills
無料GitHub で公開

android-testing

Comprehensive testing strategy involving Unit, Integration, Hilt, and Screenshot tests.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md2.9 KB

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)

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Expert checklist and prompts for auditing and fixing Android accessibility issues, especially in Jetpack Compose.

日本語の概要は準備中です。原文の説明を表示しています。

new-silvermoon/awesome-android-agent-skills9722026年7月28日 更新

Expert guidance on setting up and maintaining a modern Android application architecture using Clean Architecture and Hilt. Use this when asked about project structure, module setup, or dependency injection.

日本語の概要は準備中です。原文の説明を表示しています。

new-silvermoon/awesome-android-agent-skills9722026年7月28日 更新

Authoritative rules and patterns for production-quality Kotlin Coroutines onto Android. Covers structured concurrency, lifecycle integration, and reactive streams.

日本語の概要は準備中です。原文の説明を表示しています。

new-silvermoon/awesome-android-agent-skills9722026年7月28日 更新

Guidance on implementing the Data Layer using Repository pattern, Room (Local), and Retrofit (Remote) with offline-first synchronization.

日本語の概要は準備中です。原文の説明を表示しています。

new-silvermoon/awesome-android-agent-skills9722026年7月28日 更新

Production-ready scripts for Android app testing, building, and automation. Provides semantic UI navigation, build automation, log monitoring, and emulator lifecycle management. Optimized for AI agents with minimal token output.

日本語の概要は準備中です。原文の説明を表示しています。

new-silvermoon/awesome-android-agent-skills9722026年7月28日 更新

Expert guidance on setting up scalable Gradle build logic using Convention Plugins and Version Catalogs.

日本語の概要は準備中です。原文の説明を表示しています。

new-silvermoon/awesome-android-agent-skills9722026年7月28日 更新

new-silvermoon のスキルをすべて見る

このスキルの問題を報告する