【发布时间】:2014-12-17 13:32:50
【问题描述】:
今天我正在尝试在 Visual Studio 中创建一个用于发送电子邮件的单元测试,我正在努力寻找最好的方法并使用 SendCompleted 事件作为实际发送消息的验证。
我在这里申请发送电子邮件的代码,但在使用了许多不同的方式后,我只是在这里粘贴干净的代码,也许你可以告诉我我做错了什么或给我更好的方法来解决它。
这是我迄今为止尝试过的代码:
[TestClass]
public class sendEmailTest
{
[TestMethod]
public void sendAsyncEmailTest()
{
string from = "sender@test.com";
string to = "receiver@test.com";
MailMessage mail = new MailMessage(from, to);
mail.Subject = "Unit Test MVC";
mail.Body = "Unit Test for sending mail in MVC app";
mail.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.test.com";
smtp.EnableSsl = true;
NetworkCredential networkCredential = new NetworkCredential(from, "testpassword");
smtp.UseDefaultCredentials = true;
smtp.Credentials = networkCredential;
smtp.Port = 587;
smtp.SendAsync(mail, null);
smtp.SendCompleted += new SendCompletedEventHandler(smtp_SendCompleted);
}
static void smtp_SendCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
{
}
}
【问题讨论】:
-
关于如何改进代码的一般问题应该去codereview.stackexchange.com Stackoverflow 是针对更具体的问题。
-
我不明白这个问题。你能解释一下问题或疑问是什么吗?你所做的也不是单元测试。单元测试意味着隔离测试。它不应该依赖于你正在做的任何事情。
-
您真的在对外部服务进行单元测试吗?好像有点过分了。也要对 IIS 进行单元测试?
-
@Oswald 我很确定这不是代码审查问题。
-
@SriramSakthivel 我是单元测试的新手,此时最重要的问题是如何执行单元测试以发送电子邮件?
标签: c# asp.net .net asp.net-mvc unit-testing