Я хочу использовать FluentValidation для проверки некоторых классов, один из которых используется только как свойство для другого ... но я никогда не создавал дочерний класс, поэтому я хочу проверить валидность с родительского уровень. Это может быть ненужным/сумасшедшийИспользование FluentValidator для проверки дочерних объектов свойств
Так, например, у меня есть
public class Parent
{
public string Text {get;set;}
public Child Child {get;set;}
}
public class Child
{
public string Text {get;set;}
}
и
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();
}
}
который я тест с использованием
[Test]
public void ParentMustHaveText()
{
new ParentValidator()
.ShouldHaveValidationErrorFor(p => p.Text, "");
}
[Test]
public void ChildMustHaveText()
{
new ParentValidator().ShouldHaveValidationErrorFor(p => p.Child.Text, "");
}
Испытание ChildMustHaveText
всегда терпит неудачу, независимо от того, как я все наладилось. Я что, сумасшедший, пытаюсь это проверить?
, так как следующий тест всегда проходит
[Test]
public void ChildMustHaveText()
{
new ChildValidator().ShouldHaveValidationErrorFor(c => c.Text, "");
}
Классы модели в проекте ASP.NET WebAPI.
Я не хочу выглядеть тупым, но ваши определения правил для детской собственности прокомментированы. –
Да, это может быть непонятно. Независимо от того, какую комбинацию я настраивал, я не мог пройти тест. Я просто сдался в конце –