gpt4 book ai didi

c# - 单元测试验证规则

转载 作者:行者123 更新时间:2023-12-02 21:56:17 25 4
gpt4 key购买 nike

我编写了一个小型的 ValidationRules 库,并希望确保它通过了大量的综合测试。我想对它们进行单元测试,但我不太确定如何对验证规则进行单元测试。我认为这与测试任何其他方法类似,但有一些事情我不确定。

例如,我的一些验证规则具有用于通过 XAML 传递参数的属性。我不想想出一个办法来做到这一点,因为很多人会添加验证器并基于我的单元测试套件进行构建。

<utils:RestrictInputTypeValidator Restriction="IntegersOnly" ValidatesOnTargetUpdated="True"/>在此示例中,“Restriction”是验证规则“RestrictInputTypeValidator”的属性。

我还没有找到任何关于单元测试验证的好的资源,并且很想看看一些最佳实践的示例。

最佳答案

您在 XAML 中使用的每个验证都派生自 ValidationRule 类,该类具有以下 Validate 重载:

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);

关于c# - 单元测试验证规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17731953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com