用途:为 Kotlin + Spring 项目设计并生成分层测试,目标是用最轻量的测试证明行为,并让测试能捕获回归,而不是逐行复刻实现。
主要能力:先做测试策略分类,明确要证明的是纯业务逻辑、HTTP 契约与校验、仓储查询行为、序列化、安全规则、跨组件集成,还是数据库/消息中间件集成。随后按三层策略落地:单元测试用于领域逻辑、计算、决策表和确定性分支;切片测试用于框架边界,如 @WebMvcTest 或 WebTestClient 处理 HTTP、@DataJpaTest 处理仓储、项目已有的 JSON 或安全切片;仅当必须验证真实应用图或基础设施边界时才用 @SpringBootTest 与 Testcontainers。
Kotlin 规则:优先 JUnit 5,优先 MockK(除非仓库已统一其他方案),项目风格允许时使用反引号可读测试名,协程密集代码用 runTest 与协程测试工具,并构建可复用 fixture、builder 或 object mother。覆盖范围包括成功路径、校验失败、业务规则失败、可空性/可选字段/空集合/重复等边界,以及至少一个针对本次缺陷或改动的回归测试。
输出契约:返回测试计划(用哪些层及原因)、生成的测试类或补丁计划、需新增的测试数据支持、仍存在的覆盖缺口、验证命令及修复前应失败的测试。
限制与注意:不要默认使用 @SpringBootTest;不要只验证 mock 交互;不要耦合私有实现细节;不要使用不受控的真实时间、随机值或共享可变状态。事务测试总回滚可能掩盖提交期失败;H2 在方言、JSON、锁、索引或事务语义重要时不能替代 Postgres/MySQL;@MockBean 过度使用会拖慢集成测试;安全测试通常应同时证明 401 与 403;异步与事件流需确定性等待策略;并发与死锁不能用单线程回滚测试证明;复用容器需严格状态隔离。具体安装命令与价格信息暂未提供。