Kotlin 测试助手
面向 Kotlin 项目的测试全流程助手。基于 Kotest 和 MockK,提供从单元测试到并发测试的完整方案。支持测试驱动开发(TDD)、属性测试和代码覆盖率统计,帮助你建立稳定可靠的 Kotlin 测试体系。
这个技能能帮你做什么
如果你在用 Kotlin 开发项目,这个技能能帮你写出高质量的测试代码。它基于 Kotlin 生态中最流行的测试工具 Kotest(测试框架)和 MockK(模拟框架),提供从写测试到跑测试再到看覆盖率的完整工作流。
简单说,它能帮你:
- 写测试 —— 为 Kotlin 代码编写结构清晰的单元测试
- 模拟依赖 —— 用 MockK 模拟外部依赖,让测试更快更稳定
- 测并发 —— 测试协程(Coroutine)和 Flow 等异步代码
- 属性测试 —— 用随机数据自动测试,发现边界情况
- 看覆盖 —— 统计代码覆盖率,确保测试充分
什么时候用
写新功能时 —— 先写测试定义好"这个功能应该做什么",再写代码实现它
修复 Bug 时 —— 先写一个测试复现这个 Bug,修复后测试自动通过
重构代码时 —— 测试确保重构前后功能不变,让你大胆改代码
添加新特性时 —— 确保新代码不会破坏已有功能
团队协作时 —— 统一的测试风格,让团队成员的测试代码保持一致
主要覆盖哪些场景
- 测试框架选择
- StringSpec:最简洁,适合简单场景
- FunSpec:类似 JUnit,适合大多数情况
- BehaviorSpec:BDD 风格,适合描述业务行为
- DescribeSpec:RSpec 风格,适合组织复杂测试
- 依赖模拟
- 模拟接口和类的行为
- 验证方法调用次数和参数
- 捕获方法调用的参数
- 对协程方法的模拟支持
- 并发测试
- 测试 suspend 函数
- 测试 Flow 数据流
- 控制虚拟时间,测试延迟操作
- 测试超时和取消
- 属性测试
- 自动生成随机数据测试
- 发现边界情况和异常输入
- 测试纯函数的性质
- 数据驱动测试
- 同一套测试逻辑,多组测试数据
- 简化重复测试代码
- 覆盖率统计
- 查看哪些代码被测试覆盖到了
- 设置覆盖率门槛,低于标准自动失败
- 生成可视化报告
怎么用
新手入门 —— 告诉它"我要为这个类写测试",它会给你测试框架的建议和结构示例
排查问题 —— 测试失败了?把错误信息发给它,它会帮你分析可能的原因
测协程时 —— 不确定怎么测异步代码?它会告诉你正确的写法
提升质量 —— 想加属性测试或提高覆盖率?它会给你建议
核心工作流
这个技能遵循"红 → 绿 → 重构"的经典测试驱动开发流程:
- 红(Red) —— 先写一个测试,它现在会失败(因为功能还没实现)
- 绿(Green) —— 用最少的代码让这个测试通过
- 重构(Refactor) —— 改进代码质量,同时确保测试仍然通过
最佳实践建议
- 先写测试,再写代码(TDD)
- 测试行为,而不是测试实现细节
- 用 MockK 模拟依赖,但不要用真实的数据类
- 对协程方法用
coEvery和coVerify - 用
runTest测试异步代码,不要用Thread.sleep - 用属性测试发现边界情况
- 测试覆盖率目标:核心业务逻辑 100%,公开 API 90%,整体 80%
适用场景
- Kotlin 项目的单元测试和集成测试
- 使用 Kotest 作为测试框架的项目
- 需要测试协程和 Flow 的项目
- 需要测试覆盖率统计的项目
- 希望实践 TDD 的团队
不适用场景
- 非 Kotlin 项目(如 Java、Scala)
- 纯前端测试(如浏览器端 Kotlin/JS)
- 性能测试(压力测试、负载测试)
- UI 自动化测试(虽然 Kotest 可以配合,但主要针对后端逻辑)
v1.0.0
2026-07-17
下载