2017-02-22 132 views
1

我有一个.NET MVC应用程序,我正在使用NUnit编写一些单元测试。ModelState.IsValid抛出一个异常类型System.IO.FileLoadException

这是我目前正在测试功能:

[HttpPost] 
[ValidateAntiForgeryToken] 
public async Task<ActionResult> Add(AddInstrumentViewModel model) 
{ 
    if (ModelState.IsValid) 
    { 
     var group = new FtpServerGroup 
     { 
      Disabled = true, 
      FtpLastPullTime = DateTime.Now, 
      FtpPullInterval = TimeSpan.Zero, 
     }; 

     await db.CreateAsync(group, model.Address, model.Username, model.Password); 

     // go back to card view 
     var res = await db.GetAll(); 
     return RedirectToAction("Index", res); 
    } 

    return View(model); 
} 

这是实际测试:

[Test] 
public async Task Test() 
{ 
    var controller = new AutomaticTransferController(mockService.Object); 

    var model = new AddInstrumentViewModel 
    { 
     Address = "124.124.124.124", 
     Password = "123456", 
     Username = "John Foo" 
    }; 

    var res = await controller.Add(model); 
} 

与我注意到调试器步进只要我进入。新增( )方法行if (ModelState.IsValid)抛出异常

ModelState.IsValid抛出了一个例外类型 System.IO.FileLoadException

事实上,抛出异常没有告诉我什么时候也不要安装在

编辑

这是我InstrumentViewModel代码

using System.ComponentModel.DataAnnotations; 

    public class AddInstrumentViewModel 
    { 
     [Display(Name = "IP Address or Domain Name")] 
     [Required] 
     [RegularExpression(@"^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$")] 
     public string Address { get; set; } 

     [Display(Name = "FTP Username")] 
     [Required] 
     public string Username { get; set; } 

     [Display(Name = "FTP Password")] 
     [Required] 
     public string Password { get; set; } 
    } 
+0

提供AddInstrumentViewModel的代码 – Fran

+0

您使用的是什么版本的.net。我无法重现错误。当我重新创建示例的最小版本时,它会运行完成。同时显示如何设置模拟服务 – Nkosi

+0

'FileLoadException'通常会给出以下消息:'无法加载文件或程序集...'。检查更多的错误细节,内部异常和可能的缺失参考。 –

回答

1

我有同样的问题。只需更新&合并nuget包。我不确定究竟是哪一个,因为它们之间有很多依赖关系。

相关问题