Comment puis-je tester que mon contrôleur de l'action est de mettre la correction d'erreurs dans le ModelState lors de la validation d'une entité, lorsque je suis en utilisant DataAnnotation de validation dans MVC 2 Extrait 1?
Un peu de code pour illustrer. Tout d'abord, l'action:
[HttpPost]
public ActionResult Index(BlogPost b)
{
if(ModelState.IsValid)
{
_blogService.Insert(b);
return(View("Success", b));
}
return View(b);
}
Et voici un échec de test de l'unité qui, je pense, devrait passer mais n'est-ce pas (à l'aide de MbUnit & Moq):
[Test]
public void When_processing_invalid_post_HomeControllerModelState_should_have_at_least_one_error()
{
// arrange
var mockRepository = new Mock<IBlogPostSVC>();
var homeController = new HomeController(mockRepository.Object);
// act
var p = new BlogPost { Title = "test" }; // date and content should be required
homeController.Index(p);
// assert
Assert.IsTrue(!homeController.ModelState.IsValid);
}
Je suppose qu'en plus de cette question, doit - je les tests de validation, et que je devrais tester de cette façon?