Files
sdlc/references/tdd.md
T

1.4 KiB
Raw Blame History

TDD 參考(拆解待辦與逐項實作時引用)

接縫(Seam)

測試只寫在接縫:可觀察行為的公開介面,不綁內部實作。拆解待辦前先列出受測接縫,依 jsc-ask:ask 與使用者確認;未確認的接縫不寫測試,測試力道集中在關鍵路徑與複雜邏輯。

循環規則

  1. 先紅後綠:先寫會失敗的測試,再寫剛好通過的實作;不預寫未來的測試、不加投機功能。
  2. 一次一片(vertical slice):一個接縫、一個測試、一個最小實作為一個循環;下一片依上一片學到的調整。
  3. 綠燈後重構:測試通過後才能重構;重構只改善設計,不改變可觀察行為,並且要重跑同一組測試保持綠燈。
  4. 註解只寫原因:一個待辦要算完成,該次 diff 的註解不得夾帶追蹤編號與文件位置。完整清單與白名單見 jsc-review 的 references/comment-scope.md。

反模式(發現即重寫該測試)

  • 綁實作:mock 內部協作者、測私有方法、繞過介面從旁通道驗證。徵兆:重構沒改行為,測試卻壞了。
  • 套套邏輯:斷言用與實作相同的方式重算期望值,永遠通過。期望值必須來自獨立的真實來源(已知正確的字面值、規格、實算範例)。
  • 水平切片:先寫完全部測試再寫全部實作。這是在測想像中的形狀;改用垂直切片逐一循環。