
98
| 第十一章:測試時間
4.
回到第 1 步驟並重複執行,直到寫出所有功能都能通過的測試程式為止。
這是一個強大、精簡的回饋回路。它通常被簡稱為
紅綠重構
週期,以紀念單位測試工具
會將失敗的測試顯示為紅色的進度條,通過的測試顯示為綠色條。
就算你不遵守優先測試原則,也請你簡短回饋回路,並在每一段程式或它的附近編寫單
位測試。單位測試真的可以協助“驅動”我們的設計:它不但可以確保每一個東西的功
能都正確,也可以避免錯誤回歸,它也是瞭解產品怎麼使用某個類別 API 的好方法—如
何輕鬆且簡潔。這是非常寶貴的回饋。測試程式也可以當成實用的文件,說明如何使用
類別,在它完成時。[Page-92]
重點
在你編寫
被測試的程式碼時,編寫測試程式。不要之後再編寫測試程
式,否則你的測試程式將不會有同樣的效果。
這個早期測試、經常測試的做法可套用到單位、整合及系統層級。就算你的專案沒有自
動系統測試的基礎結構,你也可以承擔責任,並使用單位測試程式來驗證你所寫的程
式。它成本很低,而且因為良好的程式結構,也很簡單
2
。
另一個重要的測試程式編寫時間是當你必須修改產品程式的 bug 時。請不要急忙地開始
修改程式,先編寫一個失敗的單位測試來說明 bug 的原因。有時編寫這種測試程式的動
作可以讓其他相關的程式缺陷顯示出來。接著套用你的修改,並讓測試通過。把這個測
試程式放入測試池,用來確保 bug 不會再度出現。
何時執行測試
只要瞄一眼,你就可以看出很多端倪。
- Yogi Berra
顯然,如果你使用 TDD 來開發,會在開發各個功能時 ...