流畅的验证验证器忽略在域层中创建的自定义规则

时间:2011-06-10 13:06:22

标签: .net c#-4.0 fluent fluentvalidation llblgen

我有一个使用LLBLGEN生成的域模型,我使用fluentvalidation.TestHelper功能验证在域层创建的验证规则。

我的验证示例如下:

public partial class MyClassValidator : AbstractValidator< MyClass >    

{

public MyClassValidator()
{
RuleFor(x => x.MyObjMoneyValue)
.NotEmpty() 
.WithName("MyObjMoneyValue")
.WithState(x => NewFluentCustomState(x)); 

CustomRules();
} 
}

所以我有一套自定义的规则,这些规则不是由LLBLGEN生成的,它是生成规则的部分类,它允许我编写一些不基于数据库的自定义规则(即非空)。

public partial class MyClassValidator 
{
    private void CustomRules()
    {
        RuleFor(q => q.MyObjMoneyValue)
            .GreaterThan(0)
            .WithMessage("Value must be greater than 0")
            .WithState(NewFluentCustomState);

我有一个测试这个案例的测试:

_validator.ShouldHaveValidationErrorFor(q => q.MyObjMoneyValue, 0);

但是,这无法测试自定义规则。 任何想法我如何测试自定义规则?

感谢

1 个答案:

答案 0 :(得分:2)

您可以使用自定义(x =&gt; x。)进行自定义验证,而无需其他方法