课程咨询 :0571-56020834 QQ:3163902815

杭州软件测试培训

杭州软件测试培训 > 达内新闻 > 达内:单元测试之SmtpClient
  • 达内:单元测试之SmtpClient

    发布:杭州软件测试培训      来源:51测试网      时间:2016-02-26


  •     杭州达内软件测试培训专家介绍下单元测试之SmtpClient。

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

    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();
    }
    }




    原文链接:http://www.51testing.com/html/65/n-3706965.html
    推荐文章

上一篇:达内:Linux系统搭建Java Web测试环境

下一篇:单元测试的性能测试库

最新开班日期  |  更多

国际软件测试工程师精品班

国际软件测试工程师精品班

开班日期:每月底

国际软件测试工程师提升班

国际软件测试工程师提升班

开班日期:每月底

国际软件测试工程师就业班

国际软件测试工程师就业班

开班日期:每月底

国际软件测试工程师就业班

国际软件测试工程师就业班

开班日期:每月底

  • 地址:杭州市西湖区文三路199号创业大厦4楼
  • 课程培训电话:0571-56020834 QQ:3163902815     全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56