Files
gh-cashwu-claude-code-tdd-m…/commands/tf-testcases.md
2025-11-29 18:03:45 +08:00

117 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
description: 進行TDD開發的測試案例規劃。根據需求定義規劃完整的測試案例。
---
# TDD測試案例的規劃
根據需求文件,規劃涵蓋完整的測試案例。
**【功能名】**{{feature_name}}
## 事前準備
請先確認需求文件已存在:
```
docs/tdd/{feature_name}/requirements.md
```
## 測試案例分類
### 1. 正常系統測試案例(基本功能)
記載格式:
- **測試名稱**:清楚描述測試目的
- **測試內容**:要驗證什麼功能
- **輸入值**:具體的測試資料
- **預期結果**:應該得到什麼輸出
- **測試目的**:為什麼需要這個測試
### 2. 異常系統測試案例(錯誤處理)
記載格式:
- **測試名稱**:描述錯誤情境
- **測試內容**:要驗證的錯誤處理
- **輸入值**:不正確或異常的資料
- **預期結果**:預期的錯誤訊息或例外
- **測試目的**:確保適當的錯誤處理
### 3. 邊界值測試案例(極端情況)
記載格式:
- **測試名稱**:描述邊界條件
- **測試內容**:要驗證的邊界行為
- **輸入值**:最小值、最大值、空值等
- **預期結果**:邊界情況的正確處理
- **測試目的**:確保極端情況的穩定性
## 技術選擇
請指定測試使用的技術:
- **程式語言**:如 JavaScript、TypeScript、Python 等
- **測試框架**:如 Jest、Vitest、pytest 等
- **測試類型**:單元測試、整合測試等
## 測試程式碼註解要求
測試程式碼必須包含繁體中文註解:
### 測試開始的註解
```javascript
describe('功能名稱', () => {
test('測試案例名稱', () => {
// 【測試目的】:說明此測試要驗證什麼
// 【測試內容】:具體測試的處理
// 【預期行為】:正常情況下的結果
});
});
```
### Given-When-Then 註解
```javascript
// 【測試資料準備 Given】準備測試所需的資料
const input = testData;
// 【執行測試 When】呼叫要測試的功能
const result = functionToTest(input);
// 【驗證結果 Then】確認結果符合預期
expect(result).toBe(expectedValue);
```
### 驗證點的註解
```javascript
expect(result.value).toBe(10); // 【確認】:數值正確為 10
expect(result.status).toBe('success'); // 【確認】:狀態為成功
expect(result.errors).toHaveLength(0); // 【確認】:沒有錯誤
```
## 輸出格式
規劃完成後,將測試案例清單儲存至:
```
docs/tdd/{feature_name}/testcases.md
```
測試案例文件應包含:
1. 測試案例總覽(數量統計)
2. 正常系統測試案例清單
3. 異常系統測試案例清單
4. 邊界值測試案例清單
5. 技術選擇說明
## 品質檢查
規劃完成後,請確認:
- ✅ 涵蓋所有需求項目
- ✅ 測試案例分類完整
- ✅ 每個測試案例都有明確的預期結果
- ✅ 技術選擇明確
## 下一步
測試案例規劃完成後,請執行:
```
/tf-red
```
開始建立失敗的測試Red 階段)。