簡體   English   中英

如何用MOQ模擬被測類的方法

[英]How to mock the method of a class under test with MOQ

我有一個要進行單元測試的服務類。 該服務調用存儲庫類方法以保存一些數據。 但是在調用save方法之前,我有一個屬於測試對象服務類的validate方法,該方法驗證要保留為存儲庫save方法的參數的類的屬性。

我知道要驗證是否調用了存儲庫保存方法,我必須模擬存儲庫類並設置save方法,但是當單元測試方法時,如何驗證屬於被測服務類的validate方法是否被調用在測試中,因為它們屬於同一類?

您可以通過傳入使Verify方法報告錯誤的無效數據來間接測試此功能。

例子:

  • Verify對無效值拋出異常:進行單元測試以檢查Verify拋出了此異常
  • Verify返回false並且受測試的方法不會調用Save因為:在您的存儲庫模擬中斷言沒有調用Save

您不能等到將服務類注入其他一些類中。 這是您需要做的。

  1. 創建一個通過公共構造函數或公共屬性獲取服務類實例的類。
  2. 模擬服務類所依賴的存儲庫類型,以保存實體並將其保存在變量中。
  3. 對模擬回購的Save方法設置期望。
  4. 模擬您的Service類,但將模擬的回購注入到模擬的服務類中(通過屬性或構造函數)。
  5. 對模擬服務類的Validate方法設置期望。
  6. 在步驟1中創建的類中注入模擬服務類,現在如果您的期望沒有得到滿足,則測試將失敗。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM