2011-06-10 64 views
1

我有一个使用LLBLGEN生成的域模型,并即时验证那些使用fluentvalidation.TestHelper功能在域层创建的验证规则。流利的验证验证器忽略在域层中创建的自定义规则

我的验证的一个例子是这样的:

public partial class MyClassValidator : AbstractValidator<MyClass>  

{

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

CustomRules(); 
} 
} 

所以我具有的arent 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); 

然而,这无法测试自定义规则.. 任何想法如何,我怎么可以测试自定义规则?

感谢

回答

2

您可以使用自定义(X => X)为您的自定义验证不需要另一个方法