在對被測系統(system under test,簡稱SUT)進行單元測試(Unit Test)的過程中,經常會出現這種情況,被測系統調用了第三方依賴組件(depended-on component,簡稱DOC),而這個依賴組件你無法控制(或者還未實現)。爲了讓單元測試順利進行,就必須擺脫對這些對象的依賴,通常會使用測試替代(Test Double)技術合理隔離(擺脫)外部依賴項,進而以提高單元測試效率。
隔離的單元測試意味着把單元測試中的對第三方組件依賴的部分合理的提取出來,用Test Double取而代之,破除依賴,使單元測試把注意力集中放在測試“單元”的邏輯上而不是和外部依賴項的交互上。
Test Double可以細分爲:
- 虛擬對象(dummy)
- 存根(stub)
- 間諜(spy)
- 模擬對象(mock)
- 僞對象(fake)
對於初學者來說,這些分類會讓人很頭疼,它們彼此之間太像了,得深入學習才能真正掌握並區分彼此。截止書稿,我也還未真正的掌握這些技術。
有關Test Double的更多介紹,可參考: