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