TDD Cycle Skill
Scope: EXECSPEC_FULFILL — Fulfill ExecSpec(落实 ExecSpec)
版本: 0.1.0(占位)| 创建日期: 2025-11-27
概述
TDD Cycle 是测试驱动开发的核心循环:
code
┌─────────────────────────────────────────────────────┐ │ 🔄 TDD Cycle │ ├─────────────────────────────────────────────────────┤ │ ┌─────┐ │ │ │ RED │ ← 写失败的测试 │ │ └──┬──┘ │ │ ↓ │ │ ┌─────┐ │ │ │GREEN│ ← 最小代码让测试通过 │ │ └──┬──┘ │ │ ↓ │ │ ┌──────────┐ │ │ │REFACTOR │ ← 重构,保持测试绿色 │ │ └────┬─────┘ │ │ └──────→ REPEAT │ └─────────────────────────────────────────────────────┘
核心节奏:
- •🔴 RED: 先写失败的测试
- •🟢 GREEN: 写最小代码让测试通过
- •🔵 REFACTOR: 重构代码,保持测试绿色
- •🔁 REPEAT: 循环直到功能完成
L1-STREAMLINED
检查清单
- • 测试先于实现代码编写
- • 每次 GREEN 后立即考虑重构
- • 单元测试覆盖率 ≥ 80%
- • 测试金字塔比例合理(60%单元/30%集成/10%E2E)
- • GOAL 注释已添加到测试文件
通过标准
- •5 项中 4 项通过(≥80%)
>> 命令
code
>>tdd_check_l1 # 检查 TDD 节奏 >>coverage_report_l1 # 测试覆盖率报告
GOAL 注释规范
javascript
// GOAL: GOAL-XXX-001
describe('功能描述', () => {
it('should ...', () => {
// 测试代码
});
});
常见问题
🔴 RED 阶段
问题:测试写得太大 解决:每个测试只验证一个行为
问题:不知道先测什么 解决:从最简单的 Happy Path 开始
🟢 GREEN 阶段
问题:写了太多代码 解决:只写让测试通过的最小代码
问题:想一步到位 解决:接受"丑陋"的代码,重构阶段再优化
🔵 REFACTOR 阶段
问题:跳过重构 解决:每次 GREEN 后强制问自己"能更简单吗?"
问题:重构时破坏测试 解决:小步重构,每步都运行测试
相关 Skills
- •前置: bdd-scenario(BDD 场景已定义)
- •并行: code-quality(质量门禁)
- •原则: principle-dry, principle-kiss
TODO: 待细化覆盖率检查脚本和 TDD 节奏监控