SuperAPI AI 工具集

test-driven-development

编程与开发

查看项目

更新于 10-15 20:10

技能介绍

用途:这是一套测试驱动开发(TDD)的流程技能,用于实现任何功能或修复缺陷之前,先编写会失败的测试,再编写最小实现代码。资料强调其核心理念:如果你没有亲眼看到测试失败,就不知道它是否在测试正确的东西。

主要能力与流程:采用红-绿-重构循环。红阶段写一个最小测试,展示预期行为,要求单一行为、名称清晰、使用真实代码(仅在不可避免时使用模拟);随后必须运行项目测试命令(如 pnpm test path/to/test.test.ts,具体命令需查看 package.json 或 AGENTS.md),确认测试因功能缺失而失败,而非报错或笔误。绿阶段编写能通过测试的最简代码,不额外加功能或重构;再次运行测试,确认通过且其他测试未被破坏、输出干净。重构阶段仅在绿灯后进行去重、改名、抽取辅助函数,保持测试通过且不新增行为,然后进入下一个失败测试。

适用场景:新功能、缺陷修复、重构与行为变更。资料列出例外情况:一次性原型、生成代码、配置文件,需征询搭档意见。

限制与约束:铁律是“没有失败的测试就没有生产代码”;若先写了代码,必须删除重来,不得作为参考保留或边写测试边改编。资料将“稍后补测试”“我已手工测过”“删掉几小时工作太浪费”等视为合理化借口,并给出常见反模式:测试通过得太快、测试模拟行为而非真实行为、为生产类添加仅用于测试的方法、不理解依赖就模拟。若无法勾选验证清单全部项目,即视为跳过了 TDD,需要重新开始。