Claude Code Plugins

Community-maintained marketplace

Feedback

Kotlin testing - JUnit 5, MockK, Kotest, coroutine testing

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name kotlin-testing
description Kotlin testing - JUnit 5, MockK, Kotest, coroutine testing
version 1.0.0
sasmp_version 1.3.0
bonded_agent 06-kotlin-testing
bond_type PRIMARY_BOND
execution [object Object]
parameters [object Object]
logging [object Object]

Kotlin Testing Skill

Comprehensive testing with JUnit 5, MockK, and coroutine testing.

Topics Covered

MockK

class UserServiceTest {
    private val repository: UserRepository = mockk()
    private val service = UserService(repository)

    @Test
    fun `createUser saves and returns`() {
        every { repository.save(any()) } returns User(1, "test@test.com")

        val result = service.create(CreateUserRequest("test@test.com"))

        assertThat(result.id).isEqualTo(1)
        verify(exactly = 1) { repository.save(any()) }
    }
}

Coroutine Testing

@Test
fun `loadUser emits states`() = runTest {
    coEvery { repository.getUser(1) } returns Result.success(user)

    viewModel.state.test {
        viewModel.load(1)
        assertThat(awaitItem().isLoading).isTrue()
        advanceUntilIdle()
        assertThat(awaitItem().user).isEqualTo(user)
    }
}

Compose Testing

@Test
fun `button enabled when fields filled`() {
    composeTestRule.setContent { LoginScreen() }
    composeTestRule.onNodeWithTag("email").performTextInput("a@b.com")
    composeTestRule.onNodeWithTag("password").performTextInput("pass")
    composeTestRule.onNodeWithTag("login_button").assertIsEnabled()
}

Troubleshooting

Issue Resolution
"no answer found" Add every { } returns for method
Test hangs Inject TestDispatcher, use advanceUntilIdle()

Usage

Skill("kotlin-testing")