Тестирование атрибута ValidationAttribute, который переопределяет IsValidC#

Место общения программистов C#
Ответить
Anonymous
 Тестирование атрибута ValidationAttribute, который переопределяет IsValid

Сообщение Anonymous »

У меня возникли некоторые проблемы с тестированием моего пользовательского атрибута проверки. Поскольку подпись метода защищена, когда я вызываю метод IsValid в своем модульном тесте, я не могу передать объект Mock, он вызывает базовый виртуальный bool IsValid( вместо этого значение объекта).

ValidationAttribute

Код: Выделить всё

protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
var otherPropertyInfo = validationContext.ObjectType.GetProperty(this.otherPropertyName);
var otherPropertyValue = otherPropertyInfo.GetValue(validationContext.ObjectInstance, null);

if (value != null)
{
if (otherPropertyValue == null)
{
return new ValidationResult(FormatErrorMessage(this.ErrorMessage));
}
}

return ValidationResult.Success;
}
Тест

Код: Выделить всё

[Test]
public void Should_BeValid_WhenPropertyIsNullAndOtherPropertyIsNull()
{
var attribute = new OptionalIfAttribute("test");
var result = attribute.IsValid(null);

Assert.That(result, Is.True);
}
Если я не могу передать имитируемый контекст проверки, как я могу правильно протестировать этот класс?

Подробнее здесь: https://stackoverflow.com/questions/347 ... es-isvalid
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»