使用FluentValidation,是否可能在单个规则失败时引发异常?例如,我想调用Validate(),使下面的第一个规则简单地验证,但是第二个规则如果为false则抛出异常。

RuleFor(x => x.Title)
    .NotEmpty()
    .WithMessage("Please add a title for the project");

RuleFor(x => x.UserId)
    .NotEmpty()
    .WithMessage("User not supplied");


我可能正在试图迫使FluentValidation做一些它不打算做的事情。而且我知道ValidateAndThrow()方法,但这会在任何失败时引发异常。

最佳答案

是。尝试以下方法-

将FluentValidation和FluentValidation.TestHelper添加到您的指令中。

    private readonly IValidator<ItemViewModel> validator = new ItemValidator();
    //Assumes your fluent validation is in ItemValidator and your view model is ItemViewModel

    [Test]
    public void Headline_ShouldNotBeEmpty()
    {
        validator.ShouldHaveValidationErrorFor(f => f.message, string.Empty);
    }

关于c# - 单个FluentValidation规则失败时引发异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6404971/

10-09 01:11