为什么你的”测试驱动”其实是”测试验证”——TDD 这个 Skill 把铁律说透了

写了十几年代码,你真的在「测试」吗?

我见过太多团队把「测试」当成遮羞布——代码写完,补几个测试,调通上线,测试覆盖率刷到 80% 皆大欢喜。但如果你问他们:「你见过测试失败吗?」大多数人会愣住。

这其实是个危险的信号。

先写测试,是信仰还是迷信?

Test-Driven Development 这个 Skill 来自一个叫 Superpowers 的 Agent 开发框架,作者是 obra。整个框架的核心哲学就一句话:

「If you didn’t watch the test fail, you don’t know if it tests the right thing.」

翻译成人话就是:你没亲眼看到测试失败过,就不知道这测试到底在测什么。

TDD 的节奏是 Red → Green → Refactor:

  • Red:先写一个会失败的测试,确认它「因为对的原因」失败
  • Green:写最少的代码让测试通过,不多不少
  • Refactor:清理代码,保持测试全绿

听起来简单?但大多数人的「测试驱动」其实是「测试验证」——代码写完了,跑一下测试,通过了事。测试从第一天起就是绿的,根本没有经历「失败 → 修复」这个认知闭环。

这个 Skill 到底教什么?

Skill 不长,但全是干货:

  • 明确「铁律」:没有 Failing Test 就不写生产代码,违反就删掉重写
  • 大量对比示例:好测试 vs 坏测试(命名模糊、测 Mock 不测行为、一次测太多东西)
  • 各种「合理化借口」清单:包括「代码太简单不用测」「手动测过了」「以后再补」
  • Red-Green-Refactor 完整流程图

最狠的是,它把 TDD 的「反直觉」拆得很清楚:为什么测试先通过什么都证明不了?为什么「已经花了 X 小时,删了浪费」是沉没成本谬误?为什么「TDD 太慢」其实是反的?

谁适合用?

如果你:

  • 写代码常年不写测试,「以后再补」是口头禅
  • 有测试但没见过测试失败,不知道测了个啥
  • 想给 AI Coding Agent 植入正经工程纪律(Superpowers 本身就是给 Agent 用的开发框架)

这个 Skill 值得装。它不教测试框架,它教的是测试思维——而这个思维,是大多数国内团队缺失的那块板。

GitHub:https://github.com/obra/superpowers


GitHub: https://github.com/obra/superpowers

评论区

0 条评论

登录后可评论。

江望 528 阅读