skydoves/android-testing-skills

⚡️ A set of skills for Android testing: Compose UI, AndroidX Test, JVM unit tests, and ADB.

318Stars on the repository
53Mods indexed here, across every type
3mo agoLast push, which is what freshness is scored on
Apache-2.0Licence, which decides whether bodies are shown

skydoves/android-testing-skills

Skill Claude CodeCodex

Use this skill to test rememberSaveable round-trips with StateRestorationTester, the only supported tool for proving Compose state survives process death and configuration change. Covers the constructor (StateRestorationTester(rule: ComposeContentTestRule)), why restorationTester.setContent { } MUST replace…

not rated 318 +5 3mo ago A SkillSpector: pass 174 tokens original Apache-2.0

skydoves/android-testing-skills

Skill Claude CodeCodex

Use this skill to render every Jetpack Compose @Preview as a screenshot on a real Android device or emulator and publish a browsable HTML catalog from CI. Covers the Compose HotSwan Gradle compiler plugin (com.github.skydoves.compose.hotswan.compiler) and…

not rated 318 +5 3mo ago D 250 tokens original Apache-2.0

skydoves/android-testing-skills

Skill Claude CodeCodex

Use this skill to make @Preview functions the primary feedback loop for Jetpack Compose UI work — preview-driven development. Covers hoisting state out of composables so a preview never needs a ViewModel or DI graph, LocalInspectionMode for conditional preview rendering (e.g. placeholder instead of Coil/Glide)…

not rated 318 +5 3mo ago A SkillSpector: pass 216 tokens original Apache-2.0

skydoves/android-testing-skills

Skill Claude CodeCodex

Use this skill to pick the correct Compose UI test entry point. Compares createComposeRule(), createAndroidComposeRule (), createEmptyComposeRule(), runComposeUiTest { }, and runAndroidComposeUiTest { }, plus the v1 vs v2 split (UnconfinedTestDispatcher vs StandardTestDispatcher). Encodes the rule that mixing…

not rated 318 +5 3mo ago A SkillSpector: pass 205 tokens original Apache-2.0

skydoves/android-testing-skills

Skill Claude CodeCodex

Use this skill to wire the correct Gradle dependency matrix for Jetpack Compose UI tests. Covers androidTestImplementation("androidx.compose.ui:ui-test-junit4"), the debugImplementation("androidx.compose.ui:ui-test-manifest") requirement that makes createComposeRule() work, the host-test (Robolectric) trio, the…

not rated 318 +5 3mo ago A SkillSpector: pass 166 tokens original Apache-2.0

skydoves/android-testing-skills

Skill Claude CodeCodex needs its repo

Use this skill to choose between host (Robolectric/JVM) and device (instrumentation) tests for Jetpack Compose, and to configure each correctly. Covers the androidHostTest (a.k.a. src/test/) vs androidDeviceTest (a.k.a. src/androidTest/) source set split, what each flavor can and cannot drive (RenderThread…

not rated 318 +5 3mo ago A SkillSpector: pass 185 tokens original Apache-2.0

skydoves/android-testing-skills

Skill Claude CodeCodex

Use this skill to gate CI on Jetpack Compose stability — catch when a composable becomes unskippable/unrestartable or a parameter goes stable → unstable, before it ships and tanks recomposition. Covers the Compose Stability Analyzer Gradle plugin's stabilityDump (write a .stability baseline) and stabilityCheck…

not rated 318 +5 3mo ago A SkillSpector: pass 229 tokens original Apache-2.0

skydoves/android-testing-skills

Skill Claude CodeCodex

Use this skill to drive the Compose test clock by hand with MainTestClock — currentTime, autoAdvance, advanceTimeByFrame, advanceTimeBy(milliseconds, ignoreFrameDuration), and advanceTimeUntil. Explains the 16 ms frame delay used by TestMonotonicFrameClock, the per-frame ordering where withFrameNanos awaiters resume…

not rated 318 +5 3mo ago A SkillSpector: pass 193 tokens original Apache-2.0

skydoves/android-testing-skills

Skill Claude CodeCodex

Use this skill to choose the right idle-synchronization primitive in Compose UI tests — waitForIdle, awaitIdle, waitUntil(conditionDescription, timeoutMillis, condition), waitUntilNodeCount, waitUntilExactlyOneExists, waitUntilAtLeastOneExists, waitUntilDoesNotExist, runOnIdle, runOnUiThread, runWhenIdle…

not rated 318 +5 3mo ago A SkillSpector: pass 218 tokens original Apache-2.0

skydoves/android-testing-skills

Skill Claude CodeCodex

Use this skill to write non-flaky Compose animation tests by setting mainClock.autoAdvance = false and stepping frames by hand with advanceTimeByFrame and advanceTimeBy(durationMillis). Explains why InfiniteAnimationPolicy cancels indeterminate animations the moment the test starts unless autoAdvance is disabled, why…

not rated 318 +5 3mo ago A SkillSpector: warn 156 tokens original Apache-2.0

skydoves/android-testing-skills

Skill Claude CodeCodex

Use this skill to pick which behaviors to cover in an Android test suite using Google's five-category state vocabulary plus the explicit "what NOT to test" list from /training/testing/fundamentals/what-to-test. Covers state on screen, state held in memory (ViewModels), persisted state (DB / DataStore / files), other…

not rated 318 +5 3mo ago A SkillSpector: pass 175 tokens original Apache-2.0

skydoves/android-testing-skills

Skill Claude CodeCodex

Use this skill to size an Android test suite using Google's small / medium / big scope vocabulary and the qualitative pyramid. Explains why most apps should hold "many small tests and relatively few big tests", how scope (small/medium/big) is orthogonal to execution location (local vs instrumented), and where the…

not rated 318 +5 3mo ago A SkillSpector: pass 163 tokens original Apache-2.0

skydoves/android-testing-skills

Skill Claude CodeCodex

Use this skill to pick the right test double — fake, mock, stub, spy, dummy, or Robolectric shadow — for an Android test. Encodes Google's verbatim preference order ("fakes ... are preferred", "Fakes are preferred over stubs for simplicity", "Fakes or mocks are therefore preferred over spies"), gives Android examples…

not rated 318 +5 3mo ago A SkillSpector: warn 193 tokens original Apache-2.0

skydoves/android-testing-skills

Skill Claude CodeCodex

Use this skill to apply Android-team testing strategies — determinism, hermetic execution, Given-When-Then / Arrange-Act-Assert structure, naming conventions, and Hilt-based dependency replacement. Encodes which guidance actually lives on /training/testing/fundamentals/strategies (qualitative pyramid, network-access…

not rated 318 +5 3mo ago A SkillSpector: pass 205 tokens original Apache-2.0

skydoves/android-testing-skills

Skill Claude CodeCodex

Use this skill to organize Android test source sets — src/test/, src/androidTest/, the community src/sharedTest/ convention, and the modern KMP-style androidHostTest / androidDeviceTest split that Compose itself adopted after AGP 7.2 broke the classic sourceSets wiring. Includes the testImplementation /…

not rated 318 +5 3mo ago A SkillSpector: pass 182 tokens original Apache-2.0

skydoves/android-testing-skills

Skill Claude CodeCodex

Use this skill to write Espresso 3.7.0 tests against Android Views — onView(matcher).perform(action).check(matches(...)), onData(...) for AdapterView, RecyclerViewActions, Intents.intended/intending, and IdlingResource registration. Covers the full ViewMatchers / ViewActions / ViewAssertions catalog, the…

not rated 318 +5 3mo ago A SkillSpector: pass 205 tokens original Apache-2.0

skydoves/android-testing-skills

Skill Claude CodeCodex

Use this skill to run instrumented Android tests on Gradle Managed Devices (GMD) — emulators that Gradle provisions, boots, runs tests on, and tears down, so CI and every developer get the same device without managing an emulator by hand. Covers the android.testOptions.managedDevices { localDevices { create(...) {…

not rated 318 +5 3mo ago B 242 tokens original Apache-2.0

skydoves/android-testing-skills

Skill Claude CodeCodex

Use this skill to stand up an Android instrumentation test source set with the canonical AndroidJUnit4 runner, the correct AndroidJUnitRunner Gradle wiring, and supporting infrastructure (Test Orchestrator, runtime permission grants, size annotations, SDK suppression, hermetic animation defaults). Covers…

not rated 318 +5 3mo ago A SkillSpector: pass 218 tokens original Apache-2.0

skydoves/android-testing-skills

Skill Claude CodeCodex

Use this skill to launch, drive, and tear down an Activity from an instrumentation test using ActivityScenario and the JUnit4 wrapper ActivityScenarioRule. Covers ActivityScenario.launch (), launch(intent), launchActivityForResult, moveToState(Lifecycle.State.), recreate(), onActivity { }, the Closeable / use { }…

not rated 318 +5 3mo ago A SkillSpector: pass 212 tokens original Apache-2.0

skydoves/android-testing-skills

Skill Claude CodeCodex

Use this skill to test a Fragment in isolation using FragmentScenario, launchFragmentInContainer (), and launchFragment (). Covers the androidx.fragment:fragment-testing + androidx.fragment:fragment-testing-manifest artifact split, the EmptyFragmentActivity host (android:Theme.WithActionBar parent — not AppCompat)…

not rated 318 +5 3mo ago A SkillSpector: pass 208 tokens original Apache-2.0

skydoves/android-testing-skills

Skill Claude CodeCodex

Use this skill to drive cross-app and system-UI flows from instrumentation tests using UiAutomator 2.3.0 — UiDevice, BySelector / UiObject2 (modern), UiSelector / UiObject (legacy), Until conditions, and Configurator global timeouts. Covers the singleton acquisition…

not rated 318 +5 3mo ago A SkillSpector: pass 213 tokens original Apache-2.0

skydoves/android-testing-skills

Skill Claude CodeCodex

Use this skill to test suspend functions and coroutine-using classes on the JVM with kotlinx-coroutines-test. Covers runTest, TestScope, StandardTestDispatcher vs UnconfinedTestDispatcher, virtual time via TestCoroutineScheduler (advanceTimeBy, advanceUntilIdle, runCurrent), the canonical MainDispatcherRule wrapper…

not rated 318 +5 3mo ago A SkillSpector: pass 172 tokens original Apache-2.0

skydoves/android-testing-skills

Skill Claude CodeCodex

Use this skill to assert Flow emissions in tests with Cash App Turbine. Covers flow.test entry, ReceiveTurbine API (awaitItem, awaitComplete, awaitError, expectMostRecentItem, skipItems, expectNoEvents, cancel and friends, plus the non-suspending takeItem/takeComplete/takeError), turbineScope/testIn for multi-flow…

not rated 318 +5 3mo ago A SkillSpector: pass 240 tokens original Apache-2.0

skydoves/android-testing-skills

Skill Claude CodeCodex

Use this skill to wire Mockito (the dominant Android mocking framework, exclusively used by androidx itself) into a JVM unit-test suite. Covers org.mockito:mockito-core:5.x plus the org.mockito.kotlin:mockito-kotlin:5.x Kotlin DSL — mock (), whenever, argumentCaptor (), any() / anyOrNull() / eq(), MockitoJUnit.rule()…

not rated 318 +5 3mo ago A SkillSpector: pass 205 tokens original Apache-2.0

At most 3 mods per repository are shown here, and a mod shipped inside a plugin is left to that plugin's page — the rest are on their repository pages: