ASP.NET MVC não adiciona ModelError ao invocar do teste de unidade
-
24-09-2019 - |
Pergunta
Eu tenho um item modelo
public class EntryInputModel
{
...
[Required(ErrorMessage = "Description is required.", AllowEmptyStrings = false)]
public virtual string Description { get; set; }
}
e uma ação do controlador
public ActionResult Add([Bind(Exclude = "Id")] EntryInputModel newEntry)
{
if (ModelState.IsValid)
{
var entry = Mapper.Map<EntryInputModel, Entry>(newEntry);
repository.Add(entry);
unitOfWork.SaveChanges();
return RedirectToAction("Details", new { id = entry.Id });
}
return RedirectToAction("Create");
}
Quando eu crio um EntryInputModel
Em um teste de unidade, defina o Description
propriedade para null
e passar para o método de ação, eu ainda entendo ModelState.IsValid == true
, mesmo que eu tenha depurado e verificado que newEntry.Description == null
.
Por que isso não funciona?
Solução
Isso ocorre porque a ligação ao modelo não ocorre quando você chama uma ação de um teste. A ligação do modelo é o processo de mapeamento de valores de formulário publicado para um tipo e passá -lo como um parâmetro para um método de ação.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow