Як я можу перевірити, що моя дія контролера вводить правильні помилки в ModelState під час перевірки сутності, коли я використовую перевірку даних DataAnnotation у MVC 2 Preview 1?
Якийсь код для ілюстрації. По-перше, дія:
[HttpPost]
public ActionResult Index(BlogPost b)
{
if(ModelState.IsValid)
{
_blogService.Insert(b);
return(View("Success", b));
}
return View(b);
}
І ось невдалий модульний тест, який, на мою думку, повинен проходити, але не проходить (за допомогою 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);
}
Я думаю, на додаток до цього питання, чи варто мені перевіряти перевірку та чи слід перевіряти це таким чином?