TDD这条铁律成就了无数好代码,现在AI也能遵守了

写代码要不要先写测试?这个Skill给出了最硬气的答案。

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

评论区

0 条评论

登录后可评论。

陈一铭 15 阅读