AutoFixture依从于FluentValidation
创始人
2024-11-12 14:00:18
0

在使用AutoFixture生成测试数据时,可以结合FluentValidation对数据进行校验,确保生成的数据符合指定的规则。

示例代码如下:

使用FluentValidation定义数据模型的规则:

public class Order
{
    public int Id { get; set; }
    public string CustomerName { get; set; }
    public DateTime OrderDate { get; set; }
    public decimal TotalAmount { get; set; }
}

public class OrderValidator : AbstractValidator
{
    public OrderValidator()
    {
        RuleFor(order => order.Id).GreaterThan(0);
        RuleFor(order => order.CustomerName).NotEmpty();
        RuleFor(order => order.OrderDate).Must(BeAValidDate);
        RuleFor(order => order.TotalAmount).GreaterThan(0);
    }

    private bool BeAValidDate(DateTime date)
    {
        return date != default(DateTime);
    }
}

利用AutoFixture生成符合规则的测试数据:

var fixture = new Fixture().Customize(new AutoMoqCustomization());

var order = fixture.Build()
                    .With(o => o.TotalAmount, 100m)
                    .Create();
                    
var validator = new OrderValidator();
var result = validator.Validate(order);
Assert.True(result.IsValid);

以上代码保证了在生成Order实例时,符合OrderValidator的规则。如果不符合,Validator.Validate()方法会返回Invalid的ValidationResult。

相关内容

热门资讯

一分钟带你了解!微信微乐小程序... 一分钟带你了解!微信微乐小程序游戏辅助脚本,小程序跑得快的技巧-竟然是真的有辅助app(有挂攻略)亲...
最新研发!微信小程序游戏破解微... 最新研发!微信小程序游戏破解微乐游戏,微乐小程序辅助器免费安卓-其实是有辅助插件(有挂实锤)进入游戏...
终于懂了!微信小程序微乐辅助器... 终于懂了!微信小程序微乐辅助器,微乐小程序挂哪里有-确实是有辅助脚本(有挂存在)1、游戏颠覆性的策略...
科技介绍!微乐小程序黑科技免费... 科技介绍!微乐小程序黑科技免费工具,微乐自建房提升运势-总是真的是有辅助器(有挂方式)1、完成微乐小...
一分钟教会你!微乐小程序免费工... 一分钟教会你!微乐小程序免费工具,微乐自建房免费黑科技推荐-果然真的有辅助方法(有挂攻略)1、这是跨...
玩家必看科普!微乐家乡麻将辅助... 玩家必看科普!微乐家乡麻将辅助,微乐小程序微乐家乡辅助器-原来是真的有辅助软件(真是有挂)1、实时微...
热点推荐!微信微乐小程序游戏辅... 热点推荐!微信微乐小程序游戏辅助脚本,微乐辅助工具哪个好用-一贯是有辅助教程(存在有挂)1)微信微乐...
科技揭秘!微信小程序微乐辅助器... 科技揭秘!微信小程序微乐辅助器,微信小程序微乐为什么老输-原来有辅助教程(有挂教程)微信小程序微乐辅...
今日公布!微信小程序微乐辅助免... 今日公布!微信小程序微乐辅助免费,微信小程序微乐陕西挖坑辅助-真是真的是有辅助方法(有挂透明挂)1、...
新手必备!微乐小程序免费工具,... 新手必备!微乐小程序免费工具,微乐小程序辅助教程-总是存在有辅助工具(有挂详细)1、起透看视 微乐小...