Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# FluentValidation RuleForEach未检测到错误?_C#_.net_Validation_Fluentvalidation - Fatal编程技术网

C# FluentValidation RuleForEach未检测到错误?

C# FluentValidation RuleForEach未检测到错误?,c#,.net,validation,fluentvalidation,C#,.net,Validation,Fluentvalidation,我在下面定义了一个规则,其中PreferredAirlineCodes是字符串[]类型 RuleForEach(x => x.PreferredAirlineCodes).Length(2); 但是当我运行以下测试时 validator.ShouldHaveValidationErrorFor(x => x.PreferredAirlineCodes, new []{"CX", "3KK"}); 测试失败了。。。我是否错误地定义了规则?您的规则定义得很好 但是的shouldSav

我在下面定义了一个规则,其中PreferredAirlineCodes是字符串[]类型

RuleForEach(x => x.PreferredAirlineCodes).Length(2);
但是当我运行以下测试时

validator.ShouldHaveValidationErrorFor(x => x.PreferredAirlineCodes, new []{"CX", "3KK"});

测试失败了。。。我是否错误地定义了规则?

您的规则定义得很好

但是的
shouldSaveValidationError仅用于测试简单的案例:测试简单的属性验证规则。因此,它不支持测试嵌套属性或数组(另请参见此)

因此,您需要“手动”测试此验证规则:


谢谢希望下一个版本能够简单地测试集合类型
var validator = new MyClassValidator();
var result = validator.Validate(
    new MyClass() { PreferredAirlineCodes = new[] {"CX", "3KK"}});
Assert.IsTrue( 
    result.Errors.Any(e => e.PropertyName.StartsWith("PreferredAirlineCodes")));