关于 tdd
tdd 是一项开发 skill,要求先编写失败测试再编写生产代码,并通过逐步验证的 RED-GREEN-REFACTOR 流程指导工作,适用于采用测试驱动开发的 Agent 或开发者。
主要功能
- 01识别技术栈和测试框架
- 02每次编写一个失败测试
- 03确认失败原因符合预期
- 04编写可通过测试的最简代码
- 05运行完整测试套件
- 06在测试持续通过时重构
适用场景
- 01逐个测试开发功能行为
- 02调查首次运行即通过的测试
- 03避免未经测试的生产代码变更
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ fusengine/ claude-plugins --skill tdd安装后在 Claude Code 中输入/tdd确认已加载。
详细介绍
TDD 通过严格的 RED-GREEN-REFACTOR 循环贯彻铁律——先有失败的测试,才有生产代码:检测技术栈和测试框架,为下一个行为编写一个失败的测试,确认它因*预期原因*而失败(而不是语法错误或缺少测试夹具),编写能让测试通过的最简代码,确认整个测试套件全部通过,在测试保持通过的前提下重构,然后针对下一个行为重复上述流程。
绝不跳过 VERIFY 步骤——首次运行就通过的测试毫无证明力,必须调查,不能直接接受。
TDD 技能
先写测试。观察它失败。编写最少的代码使其通过。
铁律
先有失败的测试,才有生产代码。
生产代码中的每一行都必须由一个在没有它时会失败的测试来证明其必要性。 没有例外。没有捷径。绝不“之后再测试”。
Agent 工作流
1. DETECT -> Identify stack, test framework, existing test patterns
2. RED -> Write ONE failing test for the next behavior
3. VERIFY -> Run test, confirm it fails for the EXPECTED reason
IF the test fails for a DIFFERENT reason (syntax error, wrong import, missing fixture) → fix the test itself and re-run. Do NOT proceed to GREEN until the failure matches the intended behavior.
4. GREEN -> Write the SIMPLEST code that makes the test pass
5. VERIFY -> Run tests, confirm ALL pass (new + existing)
6. REFACTOR -> Clean up while keeping all tests green
7. REPEAT -> Next behavior = next failing test
重要:绝不跳过 VERIFY 步骤。首次运行就通过的测试毫无证明力。
RED-GREEN-REFACTOR 循环
详细的循环规则和验证步骤请参阅 references/red-green-refactor.md。
参考指南
| 主题 | 参考资料 |
|---|---|
| 完整的 RED-GREEN-REFACTOR 循环 | red-green-refactor.md |
| 常见错误和危险信号 | anti-patterns.md |
| 各技术栈的测试命令 | stack-commands.md |
快速参考:测试命令
| 技术栈 | 运行测试 | 监听模式 |
|---|---|---|
| React/Next.js | npx vitest run | npx vitest |
| Laravel | php artisan test | php artisan test --watch |
| Swift | swift test | - |
| 通用 TS | bunx vitest run | bunx vitest |
| Go | go test ./... | - |
| Rust | cargo test | cargo watch -x test |
禁止行为
- 绝不在失败的测试之前编写生产代码
- 绝不跳过 VERIFY RED 步骤
- 首次运行就通过的测试必须经过调查,绝不直接接受
- 绝不模拟可以直接测试的内容
- 在 RED 阶段一次绝不编写多个测试
- 绝不添加超出当前测试要求的功能
评论
支持 Markdown