Stub

External Dependency 是系統中與被測試程式互動但你無法掌控的物件。互動就是有 call 啊、使用回傳值之類的。

stub 是在系統中產生一個可以控制的替代 object 來取代 external dependency object。

使用 stub 可以解決直接相依帶來的測試問題:無法控制相依物件的行為及回傳值(例如每次 call third party API 得到的結果不同)或者相依物件不穩定,而難以有穩定的環境(固定的 input 及 output)測試要測試的程式邏輯。

一種典型的 stub 是回傳假資料,藉由假造不同的回傳值來測試程式在不同情境下的運作,例如假造其他 function 的各種可能的回傳值。