Код, который вы перечислили, основан на том, что найдено здесь ?
Лично я пишу такие тесты для каждой аннотации:
[Test]
public void CreateEventViewModel_Description_Property_Contains_StringLength_Attribute()
{
// Arrange
PropertyInfo propertyInfo = typeof(CreateEventViewModel)
.GetProperty("Description");
// Act
StringLengthAttribute attribute = propertyInfo
.GetCustomAttributes(typeof(StringLengthAttribute), true)
.Cast<StringLengthAttribute>()
.FirstOrDefault();
// Assert
Assert.NotNull(attribute);
Assert.AreEqual(255, attribute.MaximumLength);
}
Iосновываясь на некоторой информации, которую Брэд Уилсон опубликовал некоторое время назад.Эти тесты хранятся отдельно от тестов контроллера.Я не уверен, есть ли более эффективный способ сделать это сегодня (некоторые люди создали более универсальные вспомогательные методы для этого типа тестирования; я просто предпочитаю иметь явные тесты для каждого атрибута самостоятельно), но он проверит, что вашаннотации данных существуют в ваших моделях представления, как и ожидалось.
Комбинация этого типа теста, в частности, проверки атрибутов, вместе с тестами для проверки состояния модели, как указано в предыдущем вопросе
UsersController.ModelState.AddModelError("username", "Bad username");
это то, что я обычно иду с.