---
name: omd-tdd
description: "测试驱动开发：先写会失败的测试，再做最小实现，然后重构（红-绿-重构）。触发词：tdd / 测试驱动 / 先写测试 / red-green / 红绿重构；或想用测试驱动开发时。"
---

# oh-my-dsh · TDD 测试驱动开发

严格按 **red → green → refactor** 循环驱动实现：先有失败测试，再有最小实现，最后重构。对应 OMC 的 `tdd` 提示词触发模式。

## 何时用

- 用户明确要 TDD、`tdd`、先写测试、红绿重构。
- 功能有清晰的可验证行为（输入→输出），适合先定测试。

## 循环纪律

1. **Red（红）**：先写一个**会失败**的测试，用它能跑的真实命令（`pwsh`/`bash` 的测试命令，或项目既有测试框架）。
2. **Green（绿）**：写**最小**实现让测试通过，不做多余设计。
3. **Refactor（重构）**：测试全绿后再清理重复、改善命名与结构，保持全绿。

用 `todo_write` 跟踪「当前用例 → 红灯 → 绿灯 → 重构」这条链；每个用例走完一轮再进下一个。

## 与其它模式的关系

- 已有一份 `omd-plan` 方案时，按方案里的验收标准逐条写测试（测试即验收标准的可执行化）。
- TDD 是 `omd-execute` 的一种实现纪律：实现由测试驱动，而不是写完再补测试。
- 卡住时让 `omd-deep-analyze` 分析「为什么这个测试过不了」，再回来实现。

## 收尾：HUD

用 `omd-hud` 汇报红绿状态：当前用例、测试数（通过/失败）、覆盖到的验收点。让「哪些已验证、哪些还红着」一眼可见。

## 反模式

- 别先写实现再补测试——那是「补测」，不是 TDD。
- 别跳过红灯直接进入实现：先确认测试真的失败，证明它有效。
- 别在红灯时重构：先让测试绿，再谈整洁。
