用途:该技能用于在实现任何功能、修复缺陷、重构或改变行为之前,强制先编写测试。核心原则是:如果没有亲眼看到测试失败,就无法确认测试测的是正确的东西。
主要能力:提供红-绿-重构循环的完整流程。RED 阶段写一个最小测试,展示期望行为,要求单一行为、名称清晰、尽量使用真实代码而非 mock;随后必须运行 npm test path/to/test.test.ts 验证测试确实因功能缺失而失败。GREEN 阶段写最简代码让测试通过,不添加额外功能。REFACTOR 阶段在保持测试通过的前提下清理重复、改进命名、提取辅助函数。
使用方式:适用于新功能、缺陷修复、重构和行为变更。例外情况包括一次性原型、生成代码和配置文件,但需询问人类伙伴。铁律是:没有先失败的测试,就不写生产代码。若先写了代码,必须删除并从头开始,不得保留作参考或边写测试边改编。
限制与约束:测试通过后立即通过不能证明测试有效;手动测试不等于系统测试;删除已有工作不是浪费,保留不可信代码才是技术债。常见合理化借口(如“太简单不用测”“稍后补测试”“已经手动测过”)均被明确拒绝。若无法勾选验证清单中的所有项,说明跳过了 TDD,应重新开始。遇到困难时,可先写期望的 API 或断言,或询问人类伙伴。该技能还引用 @testing-anti-patterns.md 以避免测试 mock 行为、向生产类添加仅测试方法等反模式。