| source | ../../../../skills/tdd-assistant/SKILL.md |
| source_version | 1.0.0 |
| translation_version | 1.0.0 |
| last_synced | "2026-02-10T00:00:00.000Z" |
| status | current |
| description | [UDS] 引導測試驅動開發(TDD)流程:紅-綠-重構 |
| name | tdd |
| allowed-tools | Read, Write, Grep, Glob, Bash(npm test:*), Bash(npx vitest:*) |
| scope | partial |
| argument-hint | [feature or file | 功能或檔案] |
TDD 助手
語言: English | 繁體中文
引導測試驅動開發(TDD)流程:紅-綠-重構。
TDD 循環
┌─────┐ ┌───────┐ ┌──────────┐
│ RED │ ────► │ GREEN │ ────► │ REFACTOR │
└─────┘ └───────┘ └──────────┘
▲ │
└────────────────────────────────┘
工作流程
階段 1:RED - 撰寫失敗測試
- 撰寫描述期望行為的測試
- 執行測試 - 確認它因正確的原因失敗
- 使用 AAA 模式(Arrange-Act-Assert)
階段 2:GREEN - 讓測試通過
- 撰寫最少的程式碼使測試通過
- 此階段可以接受硬編碼
- 執行測試 - 確認它通過
階段 3:REFACTOR - 改善程式碼
- 消除重複(DRY)
- 改善命名和結構
- 每次修改後都執行測試
- 不新增功能
FIRST 原則
| 原則 | 說明 | Description |
|---|
| Fast | 測試快速執行(< 100ms/單元) | Tests run quickly |
| Independent | 測試間無共享狀態 | No shared state between tests |
| Repeatable | 每次結果相同 | Same result every time |
| Self-validating | 明確的通過/失敗結果 | Clear pass/fail result |
| Timely | 在產品程式碼之前撰寫 | Written before production code |
使用方式
/tdd - 開始互動式 TDD 工作階段
/tdd calculateTotal - 對特定函式進行 TDD
/tdd "user can login" - 對使用者故事進行 TDD
下一步引導
/tdd 完成後,AI 助手應建議:
TDD 循環完成。建議下一步:
- 執行
/checkin 通過品質關卡
- 執行
/coverage 確認測試覆蓋率
- 執行
/review 自我審查程式碼
參考