Files
sdlc/references/tdd.md
T
jiantw83 31ba3f490a feat(tdd): TDD 循環規則新增註解只寫原因
What:references/tdd.md 的循環規則新增第 4 項「註解只寫原因」,並寫成單一待辦的完成條件。
Why:註解界線要在紅綠循環當下就守住,不能等到審查階段才回頭清,否則追蹤編號早已散進整包 diff。
How:規則只寫一句界線加完成條件,完整清單與白名單指向 jsc-review 的 references/comment-scope.md。
Who:jsc-sdlc 的 TDD 參考文件,implement 與 maintain 兩支技能共用。
2026-08-26 19:00:56 +08:00

19 lines
1.4 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.
# TDD 參考(拆解待辦與逐項實作時引用)
## 接縫(Seam)
測試只寫在**接縫**:可觀察行為的公開介面,不綁內部實作。拆解待辦前先列出受測接縫,依 `jsc-ask:ask` 與使用者確認;未確認的接縫不寫測試,測試力道集中在關鍵路徑與複雜邏輯。
## 循環規則
1. **先紅後綠**:先寫會失敗的測試,再寫剛好通過的實作;不預寫未來的測試、不加投機功能。
2. **一次一片(vertical slice)**:一個接縫、一個測試、一個最小實作為一個循環;下一片依上一片學到的調整。
3. **重構不在循環內**:重構屬於審查階段(`jsc-review:code-review`),不混入紅綠循環。
4. **註解只寫原因**:一個待辦要算完成,該次 diff 的註解不得夾帶追蹤編號與文件位置。完整清單與白名單見 `jsc-review` 的 `references/comment-scope.md`。
## 反模式(發現即重寫該測試)
- **綁實作**:mock 內部協作者、測私有方法、繞過介面從旁通道驗證。徵兆:重構沒改行為,測試卻壞了。
- **套套邏輯**:斷言用與實作相同的方式重算期望值,永遠通過。期望值必須來自獨立的真實來源(已知正確的字面值、規格、實算範例)。
- **水平切片**:先寫完全部測試再寫全部實作。這是在測想像中的形狀;改用垂直切片逐一循環。