摘自:http://blog.vsharing.com/wooley/A801453.html
測試替身(Test Double)的定義
測試替身型別 |
描述 |
Dummy |
最簡單、最原始的測試替身型別。Dummy 沒有實作,最常用于需要參數值但不使用它的情況。Null 可視為是 Dummy,但真的 Dummy 是接口或基類的衍生,且完全不包含實作。 |
Stub |
Dummy 的上一級,Stub 是接口或基類的最低限度實作。會傳回 Void 的方法通常完全不包含實作,而會傳回值的方法通常會傳回硬式編碼的值。 |
Spy |
測試 Spy 類似 Stub,但除了提供客戶端可叫用成員的實例,Spy 還會記錄叫用了哪些成員,好讓單元測試驗證所叫用的成員是否符合預期。 |
Fake |
Fake 包含更復雜的實作,通常涉及所繼承型別之不同成員之間的互動。雖然不是完整的生產實作,但 Fake 與生產實作很相似,盡管它會采取一些快捷方式。 |
Mock |
Mock 是由 Mock 鏈接庫動態建立 (其他通常是由測試開發人員使用程序代碼來產生)。測試開發人員永遠看不到實作接口或基類的實際程序代碼,但是可以設定 Mock 以提供傳回值、預期要叫用的特定成員...等等。視其中的設定而定,Mock 的行為可能會像 Dummy、Stub 或 Spy。 |