在談談單元測試,我們閒聊了一下單元測試,接下來,我們來聊聊單元測試的基本原則。
筆者在這邊再次說明,在這個系列文章,大多是說持續優化程式碼的方向,使用的技術的概念與原則。文章內容不會提過於深入的實作與內容,因為每個主題,都是一門很深的學問。筆者沒辦法,也不可能在這 30 天,鉅細靡遺的全部說明。
最小的測試單位
不與外部(包括檔案、資料庫、網路、服務、物件、類別)直接相依
一個測試案例只測一種方法
測試案例不具備邏輯
測試案例之間相依性為零
Fast 快速
Independent/Isolated 獨立
Repeatable 可重現的
Self-Validating 可自我驗證
不管單元測驗通過否,應該可以從測試工具產生的測試報告,明白的得知測試結果與失敗原因。
Timely 即時
Arrange
在這部份,負責宣告或定義所有使用的資料、物件、期望輸出的結果。
Act
Assert
就筆者目前己知的單元測試,本身是非常吃物件導向的特性與 SOLID 原則。所以,假若本身對物件導向相關概念不熟悉的話,是非常難切入單元測試的。
順帶一提,對於單元測試的測試案例,應該也要特別注意測試案例的閱讀性,當測試案例己經不符合待測試功能本身的特性時,也會需要做對應的修改。這時,測試案例的閱讀性就顯得十分重要。