From everything-claude-code-mobile
Provides Android testing patterns using JUnit5, Mockk, Turbine, and Compose for unit, integration, and UI tests including ViewModel, repository, and screen examples with 80% coverage target.
How this skill is triggered — by the user, by Claude, or both
Slash command
/everything-claude-code-mobile:mobile-testingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Comprehensive testing for Android.
Comprehensive testing for Android.
// build.gradle.kts
dependencies {
testImplementation("org.junit.jupiter:junit-jupiter:5.10.0")
testImplementation("io.mockk:mockk:1.13.8")
testImplementation("app.cash.turbine:turbine:1.0.0")
testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.8.0")
testImplementation("io.kotest:kotest-assertions-core:5.8.0")
androidTestImplementation("androidx.compose.ui:ui-test-junit4")
debugImplementation("androidx.compose.ui:ui-test-manifest")
}
class HomeViewModelTest {
@MockK private lateinit var repository: HomeRepository
private lateinit var viewModel: HomeViewModel
@BeforeEach
fun setup() {
MockKAnnotations.init(this)
viewModel = HomeViewModel(repository)
}
@Test
fun `loads items successfully`() = runTest {
coEvery { repository.getItems() } returns Result.success(listOf(item))
viewModel.state.test {
viewModel.onIntent(LoadItems)
awaitItem().isLoading shouldBe true
awaitItem().items shouldBe listOf(item)
}
}
}
class UserRepositoryTest {
@MockK private lateinit var api: UserApi
private lateinit var repository: UserRepository
@Test
fun `getUser returns mapped domain model`() = runTest {
coEvery { api.getUser("1") } returns UserDto("1", "John")
val result = repository.getUser("1")
result.isSuccess shouldBe true
result.getOrNull()?.name shouldBe "John"
}
}
class HomeScreenTest {
@get:Rule
val rule = createComposeRule()
@Test
fun `displays items`() {
rule.setContent {
HomeContent(state = HomeState(items = listOf(item)))
}
rule.onNodeWithText(item.name).assertIsDisplayed()
}
}
./gradlew koverHtmlReport
Remember: Test behavior, not implementation. Write tests first.
npx claudepluginhub ahmed3elshaer/everything-claude-code-mobile --plugin everything-claude-code-mobileProvides Kotlin testing patterns using Kotest, MockK, coroutine testing, property-based testing, and Kover coverage. Follows TDD methodology with idiomatic Kotlin practices.
Runs pass@k verification loops on Android unit (JUnit), UI (Espresso), and Compose tests to detect flakiness and ensure reliability before commits, pushes, or releases.
Guides Kotlin TDD testing with Kotest specs, MockK mocking, coroutine/property-based tests, Ktor testApplication, and Kover coverage.