相关疑难解决方法(0)

使用FluentValidator验证属性的子项

我想使用FluentValidation来验证一些类,其中一个类仅用作另一个类的属性......但我从不直接创建子类,所以我想从父级别测试验证.这可能是不必要的/疯狂的

所以我举个例子

public class Parent
{
  public string Text {get;set;}
  public Child Child {get;set;}
}

public class Child 
{
  public string Text {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

public class ParentValidator : AbstractValidator<Parent>
{
  public ParentValidator() 
  {
    RuleFor(p=>p.Text).NotEmpty();
  //RuleFor(p=>p.Child).SetValidator(new ChildValidator);
  //RuleFor(p=>p.Child.Text).NotEmpty();
  }
}

public class ChildValidator : AbstractValidator<Child>
{
  public ChildValidator() 
  {
    RuleFor(c=>c.Text).NotEmpty();
  }
}
Run Code Online (Sandbox Code Playgroud)

我测试使用

    [Test]
    public void ParentMustHaveText()
    {
        new ParentValidator()
             .ShouldHaveValidationErrorFor(p => p.Text, "");
    }
    [Test]
    public void ChildMustHaveText()
    {
        new ParentValidator().ShouldHaveValidationErrorFor(p => p.Child.Text, "");
    }
Run Code Online (Sandbox Code Playgroud)

ChildMustHaveText无论我如何设置,测试总是失败.我是否疯狂试图以这种方式进行测试?

因为以下测试总是通过

    [Test] …
Run Code Online (Sandbox Code Playgroud)

c# fluentvalidation

6
推荐指数
1
解决办法
4168
查看次数

标签 统计

c# ×1

fluentvalidation ×1