gpt4 book ai didi

c# - 单元测试验证规则

转载 作者:行者123 更新时间:2023-12-02 04:57:30 24 4
gpt4 key购买 nike

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

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

<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/

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