測試替身

2006 年 1 月 17 日

傑瑞德·梅薩羅斯正在撰寫一本書,用來記錄使用各種Xunit架構的模式。他遇到的其中一個棘手問題,就是人們用來替換系統部分以進行測試的存根、模擬、假貨、傀儡和其他東西的各種名稱。為了處理這個問題,他想出了自己的詞彙,我覺得值得進一步推廣。

他使用的通用術語是測試替身(想想替身演員)。測試替身是任何情況下用於替換生產物件以進行測試的通用術語。傑瑞德列出了各種替身

  • 傀儡物件會被傳遞,但實際上從未使用過。它們通常僅用於填寫參數清單。
  • 假貨物件實際上具有運作實作,但通常會採取一些捷徑,使其不適合生產(InMemoryTestDatabase是一個很好的例子)。
  • 存根提供罐頭答案來回應測試期間發出的呼叫,通常完全不回應測試中編寫的任何內容之外的任何內容。
  • 間諜是存根,它也會根據呼叫方式記錄一些資訊。其中一種形式可能是電子郵件服務,它會記錄傳送了多少封訊息。
  • 模擬會預先編寫期望,這些期望會形成對預期接收呼叫的規格。如果模擬收到未預期的呼叫,它可能會擲出例外,並在驗證期間檢查以確保它收到了所有預期的呼叫。

延伸閱讀

我在模擬不是存根中擴充了模擬、替身等的使用。