Files
gh-cashwu-claude-code-tdd-m…/commands/kb-start.md
2025-11-29 18:03:43 +08:00

2.4 KiB
Raw Blame History

description
description
啟動新的 TDD 會話。遵循 Kent Beck 的純粹 TDD 理念,從第一個測試開始。

TDD Start - 啟動 TDD 會話

開始一個新的 TDD 開發會話。遵循 Kent Beck 的理念:從測試開始,讓設計演進。

【功能想法】{{brief_idea}}

Kent Beck 的起點

"開始時不要想太多,從最簡單的測試開始。"

不要做:

  • 寫完整的需求文件
  • 規劃所有測試案例
  • 事先設計類別結構
  • 想太多細節

要做:

  • 想一個最簡單的情境
  • 寫出第一個測試
  • 讓測試驅動設計

開始步驟

1. 建立開發記錄

docs/tdd/{feature_name}/ 建立:

journey.md  - TDD 開發旅程記錄(不是計劃)

2. 想第一個測試

問自己:

  • 什麼是最簡單的使用情境?
  • 什麼是最明顯的行為?
  • 從哪裡開始最容易?

範例思考過程:

功能想法:「計算購物車總價」

❌ 不要想:
- 需要支援優惠券
- 需要處理多幣別
- 需要計算稅金
- ...

✅ 只想:
「一個商品的購物車,總價應該等於商品價格」

這就是第一個測試!

3. journey.md 初始格式

# {feature_name} TDD Journey

## 開始想法
{簡單描述要做什麼1-2 句話}

## TDD 循環記錄

### 第 1 輪 - {日期時間}

#### 🤔 想法
{為什麼要寫這個測試?}

#### 📝 下一步
執行 /kb-red 寫第一個測試

心態準備

Kent Beck 強調的 TDD 心態:

好奇心

  • "如果我這樣寫測試會怎樣?"
  • 用測試來探索問題

勇氣

  • 敢於寫會失敗的測試
  • 敢於用最簡單的方式實作

簡單

  • 從最簡單的開始
  • 不要過度設計

反饋

  • 頻繁執行測試
  • 快速得到反饋

範例:開始一個 Money 類別

# Money TDD Journey

## 開始想法
建立一個 Money 類別,可以處理金錢運算。

## TDD 循環記錄

### 第 1 輪 - 2025-10-15 21:30

#### 🤔 想法
最簡單的情境5 元乘以 2 應該等於 10 元。

#### 📝 下一步
執行 /kb-red 寫第一個測試

下一步

準備好了嗎?執行:

/kb-red

開始寫你的第一個測試!

記住 Kent Beck 的話

"TDD 的目的不是測試,而是思考。" "從最簡單的測試開始,讓複雜度自然演進。" "如果不知道該寫什麼測試,那就寫一個你知道答案的測試。"