ASP.NET MVC n'ajoute pas ModelError lors de l'appel de test unitaire
-
24-09-2019 - |
Question
J'ai un élément de modèle
public class EntryInputModel
{
...
[Required(ErrorMessage = "Description is required.", AllowEmptyStrings = false)]
public virtual string Description { get; set; }
}
et une action de contrôleur
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");
}
Quand je crée un EntryInputModel
dans un test unitaire, définissez la propriété Description
à null
et le transmettre à la méthode d'action, je reçois toujours ModelState.IsValid == true
, même si je déboguée et vérifié que newEntry.Description == null
.
Pourquoi pas ce travail?
La solution
Ceci est parce que la liaison modèle ne se fait pas lorsque vous invoquez une action d'un test. Modèle de liaison est le processus de mappage de formulaire affiché valeurs à un type et à le transmettre en tant que paramètre à une méthode d'action.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow