以下是我要测试的规则:
RuleFor(m => m.Groups)
.SetValidator(new MustContainAtLeastOne<AuthGroup>())
.OverridePropertyName("Roles");
测试:
validator.ShouldHaveValidationErrorFor(m => m.Groups,new List<AuthGroup>());
问题:
当我有.OverridePropertyName("Roles")
时失败但是当我删除它时,测试通过。
这是Fluent Validation Validator类的问题吗?
答案 0 :(得分:2)
在项目网站上发布问题:
https://github.com/JeremySkinner/FluentValidation/issues/359
我相信TestHelper会将lambda表达式中指定的属性名称与生成的错误消息中的属性名称进行比较。在这种情况下,因为您重写了属性名称,所以它们将不匹配,因此断言失败。您需要手动执行断言,而不是在这种情况下使用TestHelper。