如何在不调用控制器的情况下测试ModelState

时间:2019-12-30 15:19:11

标签: c# asp.net asp.net-mvc unit-testing modelstate

我不知道我的问题是否有任何意义(我是测试中的新手),但是我认为我可能想在不调用控制器的情况下检查ModelState。 我的控制器示例:

public ActionResult New(ClientModel client){
    try{
       if (ModelState.IsValid){
         var result = _clienteAppService.Add(client);
         if (result.IsValid){
            return RedirectToAction("Index", new { id = client.ClienteId});
         }
         foreach (var error in result.Erros)
            ModelState.AddModelError(erro.Name, erro.Message);
       }
    }
    catch (Exception e){
       ModelState.AddModelError(string.Empty, e.Message);
    }
    var errors = ModelState.Select(x => x.Value.Errors)
                 .Where(y => y.Count > 0).ToList();
    ViewData["erros"] = errors;
    return View(client);
}

我的意思是我不想发生控制器中正在执行的所有操作,因此像在这种情况下添加新客户端一样,只需检查我发送的模型是否正确即可。

我想这样做是因为在我的情况下,调用控制器在测试中非常耗时,并且我不想在每种情况下都调用它。

0 个答案:

没有答案