单元测试验证规则
本文关键字:规则 验证 单元测试 | 更新日期: 2023-09-27 18:24:00
我已经编写了一个小型的ValidationRules库,并希望确保它通过大量的全面测试。我想对它们进行单元测试,但我不确定如何对验证规则进行单元测试。我认为这类似于测试任何其他方法,但有一些事情我不确定
例如,我的一些验证规则具有用于通过XAML传递参数的属性。我不想想出一个黑客来做这件事,因为很多人会添加验证器,并在我的单元测试套件上构建。
<utils:RestrictInputTypeValidator Restriction="IntegersOnly" ValidatesOnTargetUpdated="True"/>
在本例中,"Restriction"是验证规则"RestrictInputTypeValidator"的属性。
我还没有找到任何关于单元测试验证的好资源,我很想看看一些最佳实践的例子。
XAML中使用的每个验证都派生自具有以下Validate
重载的ValidationRule
类:
ValidationResult Validate(object value, CultureInfo cultureInfo)
您可以简单地在单元测试中调用此方法,并检查返回的ValidationResult
对象,该对象包含一个指示传递值是否有效的IsValid
属性。
由于这是一个类似于其他类的类,您可以像往常一样在单元测试中简单地通过所需的属性:
var validator = new RestrictInputTypeValidator()
validator.Restriction = MyRestrictionEnum.IntegersOnly;
// Here for example our input is invalid.
var result = validator.Validate("My Input", MyCulture);
Assert.IsFalse(result.IsValid);