关于 tdd-workflow
为开发者提供测试驱动开发的分阶段工作流,按 RED、GREEN、REFACTOR 循环推进,并强调最小实现与测试行为。
主要功能
- 01RED、GREEN、REFACTOR 循环
- 02测试先行与最小实现
- 03按 AAA 组织测试
- 04渐进式重构原则
- 05测试优先级指导
适用场景
- 01为新功能先编写失败测试
- 02修复缺陷时先复现问题
- 03为复杂逻辑规划测试次序
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --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 阶段原则
应该写什么
| 关注点 | 示例 |
|---|---|
| 行为 | "should add two numbers" |
| 边界情况 | "should handle empty input" |
| 错误状态 | "should throw for invalid data" |
RED 阶段规则
- 测试必须先失败
- 测试名称描述预期行为
- 每个测试一个断言(理想情况下)
4. GREEN 阶段原则
最少代码
| 原则 | 含义 |
|---|---|
| YAGNI | You Aren't Gonna Need It |
| 最简单方案 | 编写足以通过的最少代码 |
| 不做优化 | 先让它能运行 |
GREEN 阶段规则
- 不要编写不需要的代码
- 暂时不要优化
- 通过测试即可,仅此而已
5. REFACTOR 阶段原则
应该改进什么
| 方面 | 行动 |
|---|---|
| 重复 | 提取公共代码 |
| 命名 | 让意图清晰 |
| 结构 | 改进组织方式 |
| 复杂度 | 简化逻辑 |
REFACTOR 规则
- 所有测试必须保持通过
- 小步增量修改
- 每次重构后提交
6. AAA 模式
每个测试都遵循:
| 步骤 | 目的 |
|---|---|
| Arrange | 准备测试数据 |
| Act | 执行被测代码 |
| Assert | 验证预期结果 |
7. 何时使用 TDD
| 场景 | TDD 价值 |
|---|---|
| 新功能 | 高 |
| Bug 修复 | 高(先写测试) |
| 复杂逻辑 | 高 |
| 探索性开发 | 低(先做 spike,再用 TDD) |
| UI 布局 | 低 |
8. 测试优先级
| 优先级 | 测试类型 |
|---|---|
| 1 | 正常路径 |
| 2 | 错误情况 |
| 3 | 边界情况 |
| 4 | 性能 |
9. 反模式
| ❌ 不要 | ✅ 要 |
|---|---|
| 跳过 RED 阶段 | 先观察测试失败 |
| 事后补测试 | 先写测试 |
| 一开始就过度设计 | 保持简单 |
| 多个断言 | 每个测试一个行为 |
| 测试实现 | 测试行为 |
10. AI 增强 TDD
多 Agent 模式
| Agent | 角色 |
|---|---|
| Agent A | 编写失败测试(RED) |
| Agent B | 实现以通过测试(GREEN) |
| Agent C | 优化(REFACTOR) |
记住: 测试就是规格说明。如果你写不出测试,就说明你还不理解需求。
何时使用
本技能适用于执行概述中描述的工作流或操作。
限制
- 仅当任务明确符合上述范围时使用本技能。
- 不要将输出视为特定环境验证、测试或专家审查的替代品。
- 如果缺少必要输入、权限、安全边界或成功标准,请停止并请求澄清。
评论
支持 Markdown