Я использовал Это , чтобы сделать мою собственную реализацию проверки данных с использованием атрибутов. Тем не менее, когда я запускаю модульный тест, он не проходит
Юнит тест:
[TestMethod]
public void CheckAttributes_StringLengthAttribute_ShouldAddErrorIfToManyCharacters()
{
//Arrange
_model.FirstName = "asdf";
_model.LastName = "abcdefghijklmnopqrstuvwxyz";
//Act
_abstractModelValidation.CheckMyAttributes(_model);
//Assert
Assert.IsFalse(_abstractModelValidation.IsValid);
}
только к вашему сведению _abstractModelValidation.IsValid
= Errors.Any();
Моя реализация по вышеуказанной ссылке:
protected void CheckAttributes(T model)
{
var context = new ValidationContext(model, null, null);
var results = new List<ValidationResult>();
var isValid = Validator.TryValidateObject(model, context, results);
if (!isValid)
{
foreach (var validationResult in results)
{
foreach (var memberName in validationResult.MemberNames)
{
AddError(memberName, validationResult.ErrorMessage);
}
}
}
}
Модель класса:
public class ValidatorModel
{
public int Id { get; set; }
[StringLength(25), Required]
public string FirstName { get; set; }
[StringLength(9, MinimumLength = 9)]
public string LastName { get; set; }
}
Просто к вашему сведению [Required]
добавляет ошибку
Может кто-нибудь подскажет пожалуйста, что я и не так делаю?
Спасибо!