TDD这条铁律成就了无数好代码,现在AI也能遵守了
「Test-Driven Development」是superpowers技能库里的一个Claude Code Skill,作者是obra和arittr,仓库累计265k Stars。它的核心理念就一句话:没看过测试失败,就不知道测的是不是对的东西。
铁律:没有 Failing Test 就不写生产代码
这个Skill没有废话,上来就是一条铁律:
NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST
翻译成人话就是:必须先写一个会失败的测试,然后才写能让它通过的最少代码。写代码之前看过测试失败了,才知道这个测试真的在测你想要的功能——而不是在测你「以为」存在的功能。
如果写代码之前就写了测试,然后测试立刻通过了?Skill说得很直接:那测的是现有行为,不是你想要的。删掉重写。
Red-Green-Refactor 三步循环
Skill把TDD定义为一个循环:
- RED:写一个最小测试,证明这里缺个功能
- GREEN:写最少的代码让测试通过,不要多
- REFACTOR:测试通过后再清理代码,保持测试一直是绿的
每一步都有明确的验证要求。比如GREEN阶段,Skill特别强调「不要加功能」——不要想着「既然改了就顺便优化一下」。不行。只写让测试通过的最少代码。
怼rationalization(找借口)最狠的Skill
这个Skill最有趣的部分是对各种「不写测试」借口的正面回应:
- “太简单不需要测” → 简单代码才会崩,测试只要30秒
- “之后再说” → 测试写在后面会立刻通过,什么都证明不了
- “手工测过了” → 手工测试没有记录,不能重跑,容易忘
- “删掉很浪费” → 沉没成本谬误,代码信不过才是真正的浪费
每一条都有具体的反驳,不是那种「测试很重要所以你要写」的废话。
适合谁用
如果你或你的团队:
- 做TDD但经常找借口跳过
- 想培养写测试的习惯但缺乏强制力
- 想让AI agent在写代码前先写测试
这个Skill就是一个「TDD警察」,每次你准备偷懒的时候跳出来说「不行」。
安装
在Claude Code里直接用:
/plugin install test-driven-development
或者手动安装:
git clone https://github.com/obra/superpowers.git && cp -r skills/test-driven-development ~/.claude/skills/
GitHub:https://github.com/obra/superpowers/tree/main/skills/test-driven-development
GitHub: https://github.com/obra/superpowers/tree/main/skills/test-driven-development
评论区
登录后可评论。