[英]How to test a void method with Moq?
我是TDD的新手,我還有很多問題,其中一個問題是如何測試void方法!
我有一個通過引用傳遞的參數,並且我不知道如何測試:(這只是測試,不是我的真實方法)
public void ReplaceCenter(ref string cod, ref string name)
{
User user = userDAO.GetSomething();
if (user.Cod != null)
{
cod = user.Cod;
}
if (user.Name != null)
{
name = user.Name;
}
}
可以幫忙嗎? 謝謝!
假設將userDAO
作為依賴項注入並且可以被userDAO
,我將進行以下測試:
userDAO
調用了斷言GetSomething()
cod
==傳入了我們用來創建userDAO
name
==傳入了我們用來創建userDAO
我同意避免使用ref參數,但我建議按照@Tim Cools的其他答案中的建議進行重構
您應該嘗試避免使用ref和out參數。 使用包含兩個屬性的對象。 這將使您的設計更加整潔,工作更加整潔...
編輯:如果您確實想使用out參數,可以在此處找到示例
調用方法后,只需測試params中的值,即可模擬userDAO以控制其返回值(空,鱈魚,名稱)
無效方法意味着會有某種副作用。 我通常建議盡量避免使用它們,但是當您需要測試一個時,一般的經驗法則是:
實際上,這些斷言也應該針對非無效方法進行,也許更多的是要防止意外的副作用,而不是測試預期的副作用。 (IMO,如果有可能,函數應具有零副作用。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.