FluentValidation.TestHelper名前空間の拡張メソッド.ShouldHaveChildValidator()には、モデルをとるオーバーロードはありません。次の例のように、When()句を使用すると、子バリデーターが正しく設定されていることをテストするにはどうすればよいですか?FluentValidation.TestHelperを使用してWhen()条件を使用してテストの子バリデータをユニット化する方法
など。
public class ParentModel
{
public bool SomeCheckbox { get; set; }
public ChildModel SomeProperty { get; set; }
}
public class ParentModelValidator : AbstractValidator<ParentModel>
{
RuleFor(m => m.SomeProperty)
.SetValidator(new ChildModelValidator())
.When(m => m.SomeCheckbox);
}
私はSomeCheckboxがtrueの場合、子のバリデータが存在し、SomeCheckboxがfalseの場合、子のバリデータが存在しないことをアサートします。
は私が持っているこれまでのユニットテストでは、以下:
ParentModelValidator validator = new ParentModelValidator();
validator.ShouldHaveChildValidator(
m => m.SomeProperty,
typeof(ChildModelValidator));
をそれが.When()条件を考慮していません。
FluentValidation.TestHelper名前空間の他のメソッド、たとえば.ShouldHaveValidationErrorFor()にはモデルが必要なオーバーロードがあるので、When()句を使用して簡単なプロパティタイプをテストするのは簡単です前提条件
アイデア?ここで
あり、その後、溶液がいいだろう。 – TuomasK