Kotlin 测试助手

面向 Kotlin 项目的测试全流程助手。基于 Kotest 和 MockK,提供从单元测试到并发测试的完整方案。支持测试驱动开发(TDD)、属性测试和代码覆盖率统计,帮助你建立稳定可靠的 Kotlin 测试体系。

这个技能能帮你做什么

如果你在用 Kotlin 开发项目,这个技能能帮你写出高质量的测试代码。它基于 Kotlin 生态中最流行的测试工具 Kotest(测试框架)和 MockK(模拟框架),提供从写测试到跑测试再到看覆盖率的完整工作流。

简单说,它能帮你:

  • 写测试 —— 为 Kotlin 代码编写结构清晰的单元测试
  • 模拟依赖 —— 用 MockK 模拟外部依赖,让测试更快更稳定
  • 测并发 —— 测试协程(Coroutine)和 Flow 等异步代码
  • 属性测试 —— 用随机数据自动测试,发现边界情况
  • 看覆盖 —— 统计代码覆盖率,确保测试充分

什么时候用

写新功能时 —— 先写测试定义好"这个功能应该做什么",再写代码实现它

修复 Bug 时 —— 先写一个测试复现这个 Bug,修复后测试自动通过

重构代码时 —— 测试确保重构前后功能不变,让你大胆改代码

添加新特性时 —— 确保新代码不会破坏已有功能

团队协作时 —— 统一的测试风格,让团队成员的测试代码保持一致

主要覆盖哪些场景

  1. 测试框架选择
    • StringSpec:最简洁,适合简单场景
    • FunSpec:类似 JUnit,适合大多数情况
    • BehaviorSpec:BDD 风格,适合描述业务行为
    • DescribeSpec:RSpec 风格,适合组织复杂测试
  2. 依赖模拟
    • 模拟接口和类的行为
    • 验证方法调用次数和参数
    • 捕获方法调用的参数
    • 对协程方法的模拟支持
  3. 并发测试
    • 测试 suspend 函数
    • 测试 Flow 数据流
    • 控制虚拟时间,测试延迟操作
    • 测试超时和取消
  4. 属性测试
    • 自动生成随机数据测试
    • 发现边界情况和异常输入
    • 测试纯函数的性质
  5. 数据驱动测试
    • 同一套测试逻辑,多组测试数据
    • 简化重复测试代码
  6. 覆盖率统计
    • 查看哪些代码被测试覆盖到了
    • 设置覆盖率门槛,低于标准自动失败
    • 生成可视化报告

怎么用

新手入门 —— 告诉它"我要为这个类写测试",它会给你测试框架的建议和结构示例

排查问题 —— 测试失败了?把错误信息发给它,它会帮你分析可能的原因

测协程时 —— 不确定怎么测异步代码?它会告诉你正确的写法

提升质量 —— 想加属性测试或提高覆盖率?它会给你建议

核心工作流

这个技能遵循"红 → 绿 → 重构"的经典测试驱动开发流程:

  1. 红(Red) —— 先写一个测试,它现在会失败(因为功能还没实现)
  2. 绿(Green) —— 用最少的代码让这个测试通过
  3. 重构(Refactor) —— 改进代码质量,同时确保测试仍然通过

最佳实践建议

  • 先写测试,再写代码(TDD)
  • 测试行为,而不是测试实现细节
  • 用 MockK 模拟依赖,但不要用真实的数据类
  • 对协程方法用 coEverycoVerify
  • runTest 测试异步代码,不要用 Thread.sleep
  • 用属性测试发现边界情况
  • 测试覆盖率目标:核心业务逻辑 100%,公开 API 90%,整体 80%

适用场景

  • Kotlin 项目的单元测试和集成测试
  • 使用 Kotest 作为测试框架的项目
  • 需要测试协程和 Flow 的项目
  • 需要测试覆盖率统计的项目
  • 希望实践 TDD 的团队

不适用场景

  • 非 Kotlin 项目(如 Java、Scala)
  • 纯前端测试(如浏览器端 Kotlin/JS)
  • 性能测试(压力测试、负载测试)
  • UI 自动化测试(虽然 Kotest 可以配合,但主要针对后端逻辑)
v1.0.0 2026-07-17
下载