--- 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 階段)。