我已经编写了一个小型的ValidationRules库,并希望确保它能通过大量的全面测试。我想对它们进行单元测试,但我不太确定如何对验证规则进行单元测试。我认为它类似于测试任何其他方法,但有几件事我不确定。
例如,我的一些验证规则具有我用来通过XAML传递参数的属性。我不想拿出一个黑客来做这件事,因为许多人会添加验证器并在我的单元测试套件上构建。
<utils:RestrictInputTypeValidator Restriction="IntegersOnly" ValidatesOnTargetUpdated="True"/>在此示例中,"Restriction“是验证规则”RestrictInputTypeValidator“的属性。
我还没有找到任何关于单元测试验证的好资源,我很想看看一些最佳实践的例子。
发布于 2013-07-19 03:19:17
您在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);https://stackoverflow.com/questions/17731953
复制相似问题