У меня есть следующий модульный тест:
[TestMethod]
public void GivenInvalidUrlExpectInvalidModelState()
{
//Arrange
HomeController homeController = new HomeController();
InputFields inputFields = new InputFields { Url = "google.com/", KeyWords = "some key words" };
//Act
ViewResult actionResult = homeController.GetResults(inputFields);
//Assert
Assert.IsFalse(actionResult.ViewData.ModelState.IsValid);
}
И следующая модель:
public class InputFields
{
[Url]
[Required(ErrorMessage="Please provide a URL")]
public string Url { get; set; }
[Required(ErrorMessage="Please provide key words")]
public string KeyWords { get; set; }
}
Когда я обращаюсь к контроллеру из пользовательского интерфейса с недопустимым URL-адресом (без протокола), таким как google.com/
, ModelState
ложно, как и ожидалось.
Однако в модульном тесте ModelState
имеет значение true.
Почему модель не проверяется в модульном тесте?