返回技能库
开发 / 测试精选

测试驱动开发

先写会失败的测试,再写最小实现,最后在全绿基础上重构,适用于功能、修复和重构。

查看安装方式

技能说明

适用于新功能、Bug 修复、重构和行为变更。遵循 Red-Green-Refactor,要求先观察测试正确失败,再写最小实现;原型、生成代码和配置文件等例外应先确认。

关于此技能

来自 obra/superpowers 的测试驱动开发流程,要求先写一个会正确失败的测试,再写最小实现让它通过,最后在保持全绿的前提下重构。

核心能力

Red-Green-Refactor

按红灯、绿灯、重构循环推进:先证明测试能抓住问题,再写最小代码,最后清理重复和命名。

真实行为优先

鼓励测试真实行为而不是只测 Mock,要求测试名称清晰、一次只验证一个行为,并能展示预期 API。

抵抗常见捷径

明确拒绝先写代码后补测试、测试一开始就通过、只做手工验证和为了省时间跳过失败验证。

适用场景

新功能开发

在新增功能前先写一个最小失败测试,把需求转成可观察的行为。

Bug 修复

先创建能复现缺陷的失败测试,再修改生产代码,防止修复后回归。

重构和行为变更

在保持测试全绿的前提下拆分、改名和清理实现,降低无意改变行为的风险。

使用步骤

  1. 01

    写最小失败测试

    只描述一个行为,使用真实代码和清晰名称;除非确实不可避免,不依赖 Mock。

  2. 02

    确认红灯

    运行目标测试,确认它因为功能缺失而按预期失败,而不是因为拼写、环境或测试本身出错。

  3. 03

    实现最小代码

    只写足以让当前测试通过的实现,不提前加入未被需求证明的扩展能力。

  4. 04

    确认绿灯并重构

    检查目标测试和相关测试均通过且输出干净,再消除重复、改善命名和提取辅助函数。

常见问题

有没有可以跳过 TDD 的情况?+

技能列出的例外是一次性原型、生成代码和配置文件,并要求先和负责人确认;新功能、Bug 修复、重构和行为变化默认都要先写失败测试。

测试一开始就通过说明什么?+

通常说明测试覆盖了已有行为、测错了对象或没有证明自己能抓住缺陷;应先修正测试,让它因功能缺失而正确失败。

它要求使用什么测试框架?+

没有限定框架,示例使用项目常见的测试命令;应先识别项目现有测试方式,再用对应命令运行单个测试和相关回归测试。

安装前检查

把兼容性、来源和安装入口先看清楚,再放进自己的工作流。

信息卡
兼容平台

Codex · Claude Code · Cursor

来源状态

已提供来源链接

安装方式

命令可直接复制

最近整理

2026/09/07

安装提醒:即使有清晰的来源和安装方式,也建议先阅读 SKILL.md,确认它会访问哪些文件和服务。

安装命令
npx skills add https://github.com/obra/superpowers --skill test-driven-development

适用平台与标签

CodexClaude CodeCursorGitHub CopilotGemini CLIOpenCode兼容 Agent Skills#TDD#测试#Bug 修复#重构#回归测试#Red Green Refactor