Kotlin 测试模式
遵循 TDD 方法论,使用 Kotest 和 MockK 编写可靠、可维护测试的全面 Kotlin 测试模式。
何时使用
- 编写新的 Kotlin 函数或类
- 为现有 Kotlin 代码添加测试覆盖率
- 实现基于属性的测试
- 在 Kotlin 项目中遵循 TDD 工作流
- 为代码覆盖率配置 Kover
工作原理
- 确定目标代码 — 找到要测试的函数、类或模块
- 编写 Kotest 规范 — 选择与测试范围匹配的规范样式(StringSpec、FunSpec、BehaviorSpec)
- 模拟依赖项 — 使用 MockK 来隔离被测单元
- 运行测试(红色阶段) — 验证测试是否按预期失败
- 实现代码(绿色阶段) — 编写最少的代码以使测试通过
- 重构 — 改进实现,同时保持测试通过
- 检查覆盖率 — 运行
./gradlew koverHtmlReport并验证 80%+ 的覆盖率
示例
以下部分包含每个测试模式的详细、可运行示例:
快速参考
- Kotest 规范 — Kotest 规范样式 中的 StringSpec、FunSpec、BehaviorSpec、DescribeSpec 示例
- 模拟 — MockK 中的 MockK 设置、协程模拟、参数捕获
- TDD 演练 — Kotlin 的 TDD 工作流 中 EmailValidator 的完整 RED/GREEN/REFACTOR 周期
- 覆盖率 — Kover 覆盖率 中的 Kover 配置和命令
- Ktor 测试 — Ktor testApplication 测试 中的 testApplication 设置
Kotlin 的 TDD 工作流
RED-GREEN-REFACTOR 周期
RED -> 首先编写一个失败的测试
GREEN -> 编写最少的代码使测试通过
REFACTOR -> 改进代码同时保持测试通过
REPEAT -> 继续下一个需求
Kotlin 中逐步进行 TDD
// Step 1: Define the interface/signature
// EmailValidator.kt
package com.example.validator
fun validateEmail(email: S…