【问题标题】:Fluent Validator doesn't throw error when it shouldFluent Validator 不应该抛出错误
【发布时间】:2014-01-15 10:29:53
【问题描述】:

我有以下模型(所有代码都简化了)

public class BiddingTierSetViewModel
{
   public List<BiddingTierViewModel> BiddingTiers { get; set; }
}

public class BiddingTierViewModel
    {
        public decimal StartValue { get; set; }
        public decimal? EndValue { get; set; }
        public decimal StepAmount { get; set; }
    }

我有一个集合的验证器

public class BiddingTierSetViewModelValidator : AbstractValidator<BiddingTierSetViewModel>
{
public BiddingTierSetViewModelValidator(IValidator<BiddingTierViewModel> biddingTierViewModelValidator)
{
    RuleFor(x => x.BiddingTiers).SetCollectionValidator(biddingTierViewModelValidator);
}
}

对于集合中的每个元素

public class BiddingTierViewModelValidator : AbstractValidator<BiddingTierViewModel>
    {
        public BiddingTierViewModelValidator()
        {
            RuleFor(x => x.StartValue).GreaterThanOrEqualTo(0M);
        }
    }

现在,在我的测试中,我将 startvalue 设置为小于零

var validator = new BiddingTierViewModelValidator();
            var biddingTiers =
                new List<BiddingTierViewModel>() 
                { 
                    new BiddingTierViewModel() 
                    {
                        StartValue = -1,
                        EndValue = 100
                    }
                };
  biddingTierSetViewModelValidator = new BiddingTierSetViewModelValidator(
                validator);

            biddingTierSetViewModelValidator.ShouldHaveValidationErrorFor(b => b.BiddingTiers,
                biddingTiers);     

当我运行测试时出现错误

FluentValidation.TestHelper.ValidationTestException : Expected a validation error for the property BiddingTiers

为什么我的验证器没有抛出异常?

【问题讨论】:

    标签: c# .net viewmodel asp.net-mvc-5 fluentvalidation


    【解决方案1】:

    好吧,我认为当您使用 SetCollectionValidator 并且您不验证集合的“父级”时不会出现错误(在这里,您尝试验证集合,但不验证父级 (BiddingTierSetViewModel)

    看到这个post

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-28
      • 2011-06-10
      • 1970-01-01
      • 1970-01-01
      • 2011-01-05
      • 1970-01-01
      • 2021-06-02
      相关资源
      最近更新 更多