首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Moq3通过ActionMailer.net模拟MailController

使用Moq3通过ActionMailer.net模拟MailController
EN

Stack Overflow用户
提问于 2014-11-12 04:15:10
回答 1查看 60关注 0票数 0

我是Moq的新手,所以任何帮助都会很好。当我尝试设置测试时,我的代码中总是出现空引用错误。这是我在下面得到错误的代码行。

代码语言:javascript
复制
_iMailController.RequesterEmail(model).Deliver();

下面是我的测试:

代码语言:javascript
复制
 _mockMailController = new Mock<IMailController>();

 mockMailController .Setup(x => x.RequesterEmail(new Model())).Returns(**new EmailResult()**);

最大胆的部分就是我一直坚持的地方。它需要7个参数,并且不知道该放什么来伪造EmailResult。

EN

回答 1

Stack Overflow用户

发布于 2014-11-13 22:20:20

你搞错了,返回部分将会单个返回值,如string、list、bool或Int等。

因此,您可以轻松地传递在IMailController.上的RequesterEmail上返回的值因此,您必须检查从RequesterEmail方法返回的值。

您也可以使用以下代码作为示例:

代码语言:javascript
复制
mockMailController .Setup(x => x.RequesterEmail(It.IsAny<Model>())).Returns(**new EmailResult()**);

也参考下面的部分。

它提到了您在RequesterEmail方法中传递了多少参数。如果在该方法上传递了7个参数,那么您可能需要像bleow一样传递7个参数

请深入查看参数,并在此处返回两个代码。看看我在下面两个代码中使用ModelClass的位置。

如果该方法具有类似如下的参数:

代码语言:javascript
复制
public void RequesterEmail( string, int, list, EmailClass, someClass, bool, string);
{
return  ModelClass;
}

然后,您可能需要编写如下代码

代码语言:javascript
复制
mockMailController .Setup(x => x.RequesterEmail(It.IsAny<string>(), It.IsAny<int>(), 
It.IsAny<EmailClass>(), It.IsAny<someClass>(), It.IsAny<bool>(), 
It.IsAny<string>())).Return(ModelClass)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26873711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档