技能说明
适用于新功能、Bug 修复、重构和行为变更。遵循 Red-Green-Refactor,要求先观察测试正确失败,再写最小实现;原型、生成代码和配置文件等例外应先确认。
关于此技能
来自 obra/superpowers 的测试驱动开发流程,要求先写一个会正确失败的测试,再写最小实现让它通过,最后在保持全绿的前提下重构。
核心能力
Red-Green-Refactor
按红灯、绿灯、重构循环推进:先证明测试能抓住问题,再写最小代码,最后清理重复和命名。
真实行为优先
鼓励测试真实行为而不是只测 Mock,要求测试名称清晰、一次只验证一个行为,并能展示预期 API。
抵抗常见捷径
明确拒绝先写代码后补测试、测试一开始就通过、只做手工验证和为了省时间跳过失败验证。
适用场景
新功能开发
在新增功能前先写一个最小失败测试,把需求转成可观察的行为。
Bug 修复
先创建能复现缺陷的失败测试,再修改生产代码,防止修复后回归。
重构和行为变更
在保持测试全绿的前提下拆分、改名和清理实现,降低无意改变行为的风险。
使用步骤
- 01
写最小失败测试
只描述一个行为,使用真实代码和清晰名称;除非确实不可避免,不依赖 Mock。
- 02
确认红灯
运行目标测试,确认它因为功能缺失而按预期失败,而不是因为拼写、环境或测试本身出错。
- 03
实现最小代码
只写足以让当前测试通过的实现,不提前加入未被需求证明的扩展能力。
- 04
确认绿灯并重构
检查目标测试和相关测试均通过且输出干净,再消除重复、改善命名和提取辅助函数。
常见问题
有没有可以跳过 TDD 的情况?+
技能列出的例外是一次性原型、生成代码和配置文件,并要求先和负责人确认;新功能、Bug 修复、重构和行为变化默认都要先写失败测试。
测试一开始就通过说明什么?+
通常说明测试覆盖了已有行为、测错了对象或没有证明自己能抓住缺陷;应先修正测试,让它因功能缺失而正确失败。
它要求使用什么测试框架?+
没有限定框架,示例使用项目常见的测试命令;应先识别项目现有测试方式,再用对应命令运行单个测试和相关回归测试。
安装前检查
把兼容性、来源和安装入口先看清楚,再放进自己的工作流。
Codex · Claude Code · Cursor
已提供来源链接
命令可直接复制
2026/09/07
安装提醒:即使有清晰的来源和安装方式,也建议先阅读 SKILL.md,确认它会访问哪些文件和服务。
npx skills add https://github.com/obra/superpowers --skill test-driven-development