关于 tdd-workflow
TDD Workflow 是面向开发者和编码 Agent 的技能,通过 RED、GREEN、REFACTOR 循环实践测试驱动开发,也涵盖测试结构、优先级和 AI 多 Agent 分工。
主要功能
- 01RED-GREEN-REFACTOR 循环
- 02各 TDD 阶段的指导
- 03Arrange-Act-Assert 测试结构
- 04测试优先级
- 05AI 多 Agent 工作流
适用场景
- 01先写测试开发新功能
- 02用失败测试复现缺陷
- 03指导渐进式重构
- 04将 TDD 阶段分配给多个 Agent
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ davila7/ claude-code-templates --skill tdd-workflow安装后在 Claude Code 中输入/tdd-workflow确认已加载。
详细介绍
TDD 工作流
先编写测试,再编写代码。
1. TDD 循环
🔴 RED → Write failing test
↓
🟢 GREEN → Write minimal code to pass
↓
🔵 REFACTOR → Improve code quality
↓
Repeat...
2. TDD 三定律
- 只编写能让失败测试通过的生产代码
- 只编写足以证明失败的测试
- 只编写足以让测试通过的代码
3. RED 阶段原则
编写内容
| 重点 | 示例 |
|---|---|
| 行为 | “应能将两个数字相加” |
| 边界情况 | “应能处理空输入” |
| 错误状态 | “无效数据应抛出异常” |
RED 阶段规则
- 测试必须先失败
- 测试名称应描述预期行为
- 每个测试只包含一个断言(理想情况下)
4. GREEN 阶段原则
最少代码
| 原则 | 含义 |
|---|---|
| YAGNI | 你不会需要它 |
| 最简单的做法 | 编写通过测试所需的最少代码 |
| 不做优化 | 只要能正常工作即可 |
GREEN 阶段规则
- 不要编写不需要的代码
- 暂时不要优化
- 通过测试,仅此而已
5. REFACTOR 阶段原则
改进内容
| 领域 | 操作 |
|---|---|
| 重复代码 | 提取共用代码 |
| 命名 | 清晰表达意图 |
| 结构 | 改进组织方式 |
| 复杂度 | 简化逻辑 |
REFACTOR 规则
- 所有测试必须保持通过
- 进行小幅渐进式修改
- 每次重构后都提交
6. AAA 模式
每个测试都遵循以下步骤:
| 步骤 | 目的 |
|---|---|
| Arrange | 准备测试数据 |
| Act | 执行待测代码 |
| Assert | 验证预期结果 |
7. 何时使用 TDD
| 场景 | TDD 价值 |
|---|---|
| 新功能 | 高 |
| 修复 Bug | 高(先编写测试) |
| 复杂逻辑 | 高 |
| 探索性开发 | 低(先进行试验性开发,再使用 TDD) |
| UI 布局 | 低 |
8. 测试优先级
| 优先级 | 测试类型 |
|---|---|
| 1 | 正常流程 |
| 2 | 错误情况 |
| 3 | 边界情况 |
| 4 | 性能 |
9. 反模式
| ❌ 不要 | ✅ 应该 |
|---|---|
| 跳过 RED 阶段 | 先观察测试失败 |
| 之后再写测试 | 先写测试 |
| 一开始就过度设计 | 保持简单 |
| 包含多个断言 | 每个测试只测一种行为 |
| 测试实现细节 | 测试行为 |
10. AI 辅助 TDD
多 Agent 模式
| Agent | 职责 |
|---|---|
| Agent A | 编写失败测试(RED) |
| Agent B | 实现代码以通过测试(GREEN) |
| Agent C | 优化(REFACTOR) |
请记住: 测试就是规范。如果你无法编写测试,就说明你还不理解需求。
评论
支持 Markdown