用途:该技能用于指导测试驱动开发(TDD)流程,要求在编写任何功能或缺陷修复的实现代码之前先写测试。核心原则是:如果没有亲眼看到测试失败,就无法确认测试是否检验了正确的东西。
主要能力:定义红-绿-重构循环。RED 阶段写一个最小测试,描述期望行为,要求单一行为、命名清晰、尽量使用真实代码而非 mock;随后必须运行测试并确认它因功能缺失而失败(而非报错或拼写问题)。GREEN 阶段编写能通过测试的最简代码,不添加额外功能或重构。REFACTOR 阶段在测试保持通过的前提下消除重复、改进命名、抽取辅助函数,不新增行为。循环重复,为下一个功能写下一个失败测试。
使用方式:运行测试的命令示例为 npm test path/to/test.test.ts,用于验证 RED 与 GREEN 阶段。文档还给出缺陷修复示例:先写复现缺陷的失败测试,再按 TDD 循环修复。
适用场景:新功能、缺陷修复、重构、行为变更。例外情况(需征得人类伙伴同意):一次性原型、生成代码、配置文件。
限制与要求:铁律是“没有失败测试就不写生产代码”。若先写了代码,必须删除并从头开始,不得保留作参考或边写测试边改编。文档列出常见借口(如“太简单不用测”“稍后再补测试”“已手动测过”“删除几小时工作太浪费”等)并逐一反驳,强调测试后写无法证明测试有效。还提供验证清单与卡住时的应对建议(如不知道如何测试就先写期望的 API 或断言)。