用途:该技能用于指导测试驱动开发(TDD)实践,要求在实现任何功能或修复缺陷之前先编写测试,核心原则是“没有失败的测试,就不写生产代码”。
主要能力:提供红-绿-重构循环的完整流程。RED 阶段编写一个最小测试,展示期望行为,测试需命名清晰、只测一件事、尽量使用真实代码而非 mock;随后必须运行测试并确认其因功能缺失而失败。GREEN 阶段编写最简代码使测试通过,不添加额外功能或重构。REFACTOR 阶段在保持测试通过的前提下清理重复、改进命名、提取辅助函数。
使用方式:按循环逐步执行,每步都需验证。运行测试的命令示例为 npm test path/to/test.test.ts。若测试立即通过,说明测的是已有行为,需修正测试;若测试报错而非失败,需先修复错误再重跑。
适用场景:新功能、缺陷修复、重构、行为变更。例外情况包括一次性原型、生成代码和配置文件,但需征得人类伙伴同意。
限制与要求:禁止先写代码再补测试;若已写代码,必须删除并从头开始,不得保留作参考或边写测试边改编。测试应覆盖边界与错误情况,输出需干净无警告。遇到难以测试的情况,应反思设计是否过于复杂。该技能还强调常见借口(如“太简单不用测”“事后补测试一样”)均不成立,事后测试无法证明测试本身有效。