簡體   English   中英

模擬具有可選參數的方法

[英]Mocking a method that has optional parameter

我有一個方法public void SendMail(string email, string subject, string body, List<Attachment> attachements = null) ,其中最后一個參數可以為nullList<Attachment>

我這樣嘲笑:

        var mailMock = new Mock<IMailService>();
        mailMock.Setup(m => m.SendMail(It.IsNotNull<string>(), It.IsNotNull<string>(), It.IsNotNull<string>(), It.IsAny<List<Attachment>>())).Verifiable();
        mailMock.Verify();

但是它不允許在附件參數中使用null值。 如何允許同時傳遞nullList<Attachment>

更新:實際上,它正在工作,只是我調用了mailMock.Verify(); 在實際調用測試方法之前為時尚早。

編輯:不是一個好的答案,沒有回答問題,並且一般來說是錯誤的。

您不需要“ = null”部分。 每個可空對象(包括List)都可以為空。 因此,這樣的方法將始終允許使用null值。

暫無
暫無

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

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