測試標準
約束 AI 生成測試程式碼的規範集。三層內容:
- unit-test-standards.md:單元測試 — AAA 結構/Mock 規則/斷言風格/測試隔離
- contract-test-standards.md:契約測試 — 驗收場景翻譯/三態覆蓋/先紅後綠
- test-data-standards.md:測試資料 — 資料工廠/Testcontainers/隔離
載入矩陣
| 任務類型 | 必讀 |
|---|---|
| 寫單元測試 | standards/unit-test-standards.md |
| 寫介面契約測試(對接 ai-dev-workflow 4.2) | standards/contract-test-standards.md + standards/unit-test-standards.md |
| 準備測試資料 / 資料庫整合測試 | standards/test-data-standards.md |
| 審查測試程式碼 | 全部(按對應類型) |
核心規則速查
- 測試是驗收標準:禁止改斷言/刪測試/@Disabled(編碼不得遷就測試)
- 一個測試一個行為,AAA 結構;斷言用 AssertJ 流式
- 測試方法名英文駝峰(
createOrderShouldReturn400WhenUserNotExist),禁止中文/拼音方法名;用例中文寫 Javadoc - 依賴全 mock,不測實作細節;無 Thread.sleep
- 契約測試覆蓋三態(合法/非法/邊界),先紅後綠
- 測試資料工廠化,複雜 SQL 用 Testcontainers 真實庫
- 測試隔離:不依賴執行順序、不共享可變狀態
與其他 skill 的關係
- ai-dev-workflow:4.2
/contract-tests契約測試流程引用本 skill 的 contract-test-standards(流程在流程 skill,程式碼規範在本 skill) - java-code-standards:Java 程式碼規範引用本 skill(寫測試時載入)
- database-standards / comment-standards:無直接引用
使用要求
生成任何測試程式碼前,按「任務類型 → 載入矩陣」讀取規範;生成後對照對應規範自檢清單逐項核對。契約測試先紅後綠,紅因必須是「實作不存在」而非「測試寫錯」。