我想使用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)