帮助开发者用 Kotest、MockK 与协程测试构建高质量 Kotlin 测试体系。
复制安装指令,让 AI 自动完成配置 · 推荐新手
请帮我安装 askskill 上的 "kotlin-testing" 技能: 1. 下载 https://raw.githubusercontent.com/affaan-m/ECC/main/skills/kotlin-testing/SKILL.md 2. 保存为 ~/.claude/skills/kotlin-testing/SKILL.md 3. 装好后重载技能,告诉我可以用了
请为这个 Kotlin 协程服务编写单元测试,使用 Kotest 和 MockK,覆盖成功、异常和取消场景,并说明测试结构为何这样设计。
产出一组符合 Kotlin 惯用法的协程单元测试代码,并附上测试设计说明。
我有一段 Kotlin 业务逻辑代码,请按 TDD 方法先列出测试用例,再给出重构后的实现,测试框架用 Kotest,并补充必要的 MockK mock 示例。
先得到测试清单与测试代码,再得到可通过测试的重构实现方案。
针对这个 Kotlin 数据转换函数,设计 property-based testing 用例,并结合 Kover 给出覆盖率提升建议,指出遗漏的边界条件。
返回属性测试示例、关键边界条件分析,以及可执行的覆盖率改进建议。
Comprehensive Kotlin testing patterns for writing reliable, maintainable tests following TDD methodology with Kotest and MockK.
./gradlew koverHtmlReport and verify 80%+ coverageThe following sections contain detailed, runnable examples for each testing pattern:
RED -> Write a failing test first
GREEN -> Write minimal code to pass the test
REFACTOR -> Improve code while keeping tests green
REPEAT -> Continue with next requirement
// Step 1: Define the interface/signature
// EmailValidator.kt
package com.example.validator
fun validateEmail(email: String): Result<String> {
TODO("not implemented")
}
// Step 2: Write failing test (RED)
// EmailValidatorTest.kt
package com.example.validator
import io.kotest.core.spec.style.StringSpec
import io.kotest.matchers.result.shouldBeFailure
import io.kotest.matchers.result.shouldBeSuccess
class EmailValidatorTest : StringSpec({
"valid email returns success" {
validateEmail("[email protected]").shouldBeSuccess("[email protected]")
}
"empty email returns failure" {
validateEmail("").shouldBeFailure()
}
"email without @ returns failure" {
validateEmail("userexample.com").shouldBeFailure()
}
})
// Step 3: Run tests - verify FAIL
// $ ./gradlew test
// EmailValidatorTest > valid email returns success FAILED
// kotlin.NotImplementedError: An operation is not implemented
// Step 4: Implement minimal code (GREEN)
fun validateEmail(email: String): Result<String> {
if (email.isBlank()) return Result.failure(IllegalArgumentException("Email cannot be blank"))
if ('@' !in email) return Result.failure(IllegalArgumentException("Email must contain @"))
val regex = Regex("^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}$")
if (!regex.matches(email)) return Result.failure(IllegalArgumentException("Invalid email format"))
return Result.success(email)
}
// Step 5: Run tests - verify PASS
// $ ./gradlew test
// EmailValidatorTest > valid email returns success PASSED
// EmailValidatorTest > empty email returns failure PASSED
// EmailValidatorTest > email without @ returns failure PASSED
// Step 6: Refactor if needed, verify tests still pass
class CalculatorTest : StringSpec({
"add two positive numbers" {
Calculator.add(2, 3) shouldBe 5
}
"add negative numbers" {
Calculator.add(-1, -2) shouldBe -3
}
"add zero" {
Calculator.add(0, 5) shouldBe 5
}
})
…
帮助开发者为代码代理配置性能优化、安全防护与研究优先工作流。
提供数据库迁移、回滚与零停机发布的最佳实践指导,适用于多种 ORM 与 SQL 数据库。
通过双评审智能体对结果进行对抗式校验,提升输出发布前的可靠性
帮助你掌握地道 Rust 模式、所有权与并发实践,编写安全高性能应用。
基于 C++ Core Guidelines 编写、审查并重构更安全现代的 C++ 代码。
为 Claude Code 会话提供系统化校验流程,帮助检查结果正确性与质量。
提供 Kotlin 测试模式与 TDD 实践,涵盖 MockK、协程测试、性质测试和覆盖率分析。
帮助你系统掌握 Rust 测试模式,并用 TDD 提升代码质量与覆盖率。
帮助你系统掌握 Rust 测试模式与 TDD 实践,提升代码质量与可维护性。
提供地道 Kotlin 模式与最佳实践,帮助构建健壮高效且易维护的应用。
帮助开发者掌握 Kotlin 协程与 Flow 在 Android 和 KMP 中的实战模式。
帮助你按TDD方法编写Rust单元、集成、异步与属性测试。