測試替身(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。
Powered by: C++博客 Copyright © 金慶