星空网 > 软件开发 > ASP.net

ASP.NET 系列:单元测试之SmtpClient

使用SmtpClient发送Email时,我们可以创建ISmtpClient接口和SmtpClientWrapper适配类,在单元测试中对ISmtpClient进行Mock或自定义FackeSmtpClient,但nDumbster的Facke SMTP Server给我们提供了更直观更简单的方式进行单元测试。可以通过Nuget搜索nDumbster,这里使用的是netDumbster。

1.IEmailSender接口

public interface IEmailSender{  void SendMail(string from, string to, string subject, string body);}

2.SMTPAdapter实现类

public interfacepublic class SMTPAdapter : IEmailSender{  public void SendMail(string from, string to, string subject, string body)  {    var message = new MailMessage();    message.IsBodyHtml = true;    message.From = new MailAddress(from);    message.To.Add(new MailAddress(to));    message.Subject = subject;    message.Body = body;    using (var smtpClient = new SmtpClient())    {      if (smtpClient.Host == null)      {        smtpClient.Host = "localhost";      }      smtpClient.Send(message);    }  }}

3.使用nDumbster单元测试

public class SMTPAdapterTest{  [Fact]  public void SendMailTest()  {    SimpleSmtpServer server = SimpleSmtpServer.Start(25);    IEmailSender sender = new SMTPAdapter();    sender.SendMail("sender@here.com", "receiver@there.com", "subject", "body");    Assert.Equal(1, server.ReceivedEmailCount);    SmtpMessage mail = (SmtpMessage)server.ReceivedEmail[0];    Assert.Equal("sender@here.com", mail.Headers["From"]);    Assert.Equal("receiver@there.com", mail.Headers["To"]);    Assert.Equal("subject", mail.Headers["Subject"]);    Assert.Equal("body", mail.MessageParts[0].BodyData);    server.Stop();  }}




原标题:ASP.NET 系列:单元测试之SmtpClient

关键词:ASP.NET

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

shopee马来站点:https://www.goluckyvip.com/tag/25044.html
shopee买家:https://www.goluckyvip.com/tag/25045.html
shopee卖家版:https://www.goluckyvip.com/tag/25046.html
shopee卖家登录中心:https://www.goluckyvip.com/tag/25047.html
shopee卖家后台:https://www.goluckyvip.com/tag/25048.html
Shopee卖家计分系统:https://www.goluckyvip.com/tag/25049.html
Twitter和Meta的付费认证服务值得购买吗?:https://www.kjdsnews.com/a/1836404.html
零售晚报:携程发布318成绩单 近800万商家GMV增长101% :https://www.kjdsnews.com/a/1836405.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流