Unit testing 例外情况;未指定SMTP主机";其中我';m在单元测试中使用指定的dickupdirectory

Unit testing 例外情况;未指定SMTP主机";其中我';m在单元测试中使用指定的dickupdirectory,unit-testing,asp.net-mvc-5,tdd,sendmail,Unit Testing,Asp.net Mvc 5,Tdd,Sendmail,我的控制器操作中有(我移除了try/catch块以获得更清晰的代码): 操作正常,有关主机的信息位于web.config中 我想为此操作创建单元测试。我在项目中使用test web.config创建了: <configuration> <system.net> <mailSettings> <smtp deliveryMethod="SpecifiedPickupDirectory"> <specifi

我的控制器操作中有(我移除了try/catch块以获得更清晰的代码):

操作正常,有关主机的信息位于web.config中

我想为此操作创建单元测试。我在项目中使用test web.config创建了:

<configuration>
  <system.net>
    <mailSettings>
      <smtp deliveryMethod="SpecifiedPickupDirectory">
        <specifiedPickupDirectory pickupDirectoryLocation="C:\MailTest\"/>        
      </smtp>
    </mailSettings>
  </system.net>
</configuration>
排队

Elmah.ErrorSignal.FromCurrentContext().Raise(ex); 

我有异常:未指定SMTP主机。如果在我的web.config中选择SpecifiedPickupDirectory作为传递方法,为什么需要它?

可能缺少
App.config
@本主题中的OldFox是关于在两个项目之间共享相同的web.config,但我有两个web.config文件。第一个是正常的,主机、用户名、密码等用于发送邮件,第二个(插入此处)仅用于测试项目,以便将邮件另存为磁盘上的文件。
    [TestMethod]
    public void ContactControllerTest_SendMessage_PartialView()
    {
        //Arrange
        var controller = new ContactController();

        //Act
        var result = controller.SendMessage(contactViewModel) as PartialViewResult;

        //Asset
        Assert.AreEqual("_ContactPartial", result.ViewName");
    }
Elmah.ErrorSignal.FromCurrentContext().Raise(ex);