用途:该技能用于在实现任何新功能、修复缺陷、重构或改变行为之前,先编写测试并观察其失败,以此确保测试真正能捕获问题。核心原则是:没有先看到测试失败,就无法确认测试测的是正确的东西。
主要能力:定义红-绿-重构循环。RED 阶段写一个最小测试,命名清晰、只测一个行为、尽量使用真实代码而非 mock;随后必须运行测试并确认它因功能缺失而失败,而非因拼写错误报错。GREEN 阶段写最简代码让测试通过,不额外添加功能或重构。REFACTOR 阶段在保持测试通过的前提下消除重复、改进命名、抽取辅助函数。
使用方式:先写失败测试,运行 npm test path/to/test.test.ts 验证失败原因正确;再写最小实现,再次运行确认通过且其他测试仍通过、输出无错误警告;最后重构并保持绿色。循环重复。
适用场景:新功能、缺陷修复、重构、行为变更。例外情况需征得人类伙伴同意,如一次性原型、生成代码、配置文件。
限制与铁律:没有失败测试就不得写生产代码;若先写了代码,必须删除并从头开始,不得保留作参考或边写测试边改编。测试通过即说明测的是已有行为,需修正测试。测试报错需先修复错误直到正确失败。常见借口如“太简单不用测”“稍后再测”“已手动测过”“删除太浪费”均被明确否定。完成前需核对清单:每个新函数有测试、每个测试都先失败过、失败原因符合预期、写了最小代码、全部测试通过、输出干净、尽量用真实代码、覆盖边界与错误。遇到不知如何测试时,先写期望的 API 和断言,或询问人类伙伴。