【发布时间】:2014-06-16 05:39:03
【问题描述】:
我有一些与 SendGrid 服务相关的应用设置,例如用户名、密码和一些重置密码电子邮件设置。现在我想在我的单元测试中使用它们。我的 ResetPasswordSetting 类看起来像这样。
public class ResetPasswordEmailSetting : IResetPasswordEmailSetting
{
public string ResetPasswordEmailUrl { get; set; }
public List<string> AddToEmails { get; set; }
public string FromEmail
{
get { return ConfigurationManager.AppSettings.Get("ResetPassword_FromEmail"); }
}
public string Subject
{
get { return ConfigurationManager.AppSettings.Get("ResetPassword_Subject"); }
}
public string SenderDisplayName
{
get { return ConfigurationManager.AppSettings.Get("ResetPassword_SenderDisplayName"); }
}
}
当我使用此类运行我的单元测试时,从 Webconfig appsetting 部分获取其值的字段将变为空。
我的单元测试看起来像这样。
[TestMethod]
[TestCategory("SendGrid-Service")]
public async Task email_recieved_when_correct_email_provided()
{
var sendgrid = new SendGridService();
var resetpasswordsetting = new ResetPasswordEmailSetting
{
AddToEmails = new List<string> { "fluffyduk@gmail.com" },
ResetPasswordEmailUrl = "www.google.com",
};
// when i debug then resetpasswordsetting fields are coming null other then above.
var result = await sendgrid.SendResetPasswordEmail(resetpasswordsetting, new
SendGridSettings());
result.Should().BeTrue();
}
所以知道如何在单元测试中获取这些设置。
【问题讨论】:
标签: c# asp.net unit-testing