test-driven-development
当实现任何功能或 Bug 修复,在编写实现代码之前使用。
技能说明obra/superpowers
当实现任何功能或 Bug 修复,在编写实现代码之前使用。
技能简介
这是一个帮助开发者在编写实现代码之前先编写测试的技能。它强制遵循“测试先行”的流程:先写一个失败的测试,再写最小代码让它通过,从而确保测试真正验证了目标行为,而非被实现代码“带偏”。
使用场景
- 实现新功能
- 修复 Bug
- 进行代码重构
- 修改既有行为
- 需要验证测试确实能捕获预期 Bug 的场景
使用方法
- 安装/启用:将该 SKILL.md 文件放入你的 Agent 技能目录,或通过
skills add命令引入(如使用 Claude Skills 或类似 CLI 技能管理工具)。 - 遵循 TDD 循环:
- RED:先编写一个最小、行为明确的测试(如
npm test可运行的测试文件)。 - 验证 RED:运行测试,确认它因功能缺失而失败(而非因语法错误)。
npm test path/to/test.test.ts - GREEN:编写最简实现代码,让该测试通过。
- 验证 GREEN:再次运行测试,确认通过且其他测试未受影响。
- REFACTOR:在保持测试通过的前提下清理代码。
- 重复:为下一个行为写下一个失败测试。
- RED:先编写一个最小、行为明确的测试(如
注意事项
- 铁律:没有失败测试,不写任何生产代码;若已写,请直接删除重来。
- 测试必须验证真实行为,不要用 Mock 替代真实代码逻辑。
- 测试名称应描述行为而非含糊其辞(如
test1)。 - 避免“事后补测试”——补写的测试往往直接通过,无法证明其能捕获 Bug。
- 若遇到例外(如一次性原型、生成代码、配置文件),请先与人类伙伴确认。