[英]Unit testing Smtpclient mock Send method
有没有办法模拟Send(System.Net.Mail.MailMessage message)
方法在调用时什么都不做? 我正在使用 2 个参数构造函数创建 SmtpClient 并发送如下消息
using(var client = new SmtpClient(host, port)){
client.Send(message);
}
我真的不需要测试它,只想跳过它并继续前进。 对于测试,我使用 XUnit 和 Moq。
看起来您需要实现任何实现相同方法的包装器。
例如:
public interface ISmtpClientWrapper
{
void Send(MailMessage message);
}
public class SmtpClientWrapper : ISmtpClientWrapper
{
private readonly SmtpClient _smtpClient;
public SmtpClientWrapper()
{
_smtpClient = new SmtpClient("xxx", 25);
}
public void Send(MailMessage message)
{
_smtpClient.Send(message);
}
}
然后在主 class 的构造函数中将其作为参数传递。
在这种情况下,您可以使用任何您想要的模拟框架。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.