繁体   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