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。

相关内容

热门资讯

透视详细!wepoker有辅助... 透视详细!wepoker有辅助器吗(透视)wpk有辅助器吗,教程举措(有挂技巧)-哔哩哔哩在进入we...
透视总结!cloudpoker... 透视总结!cloudpoker透视(透视)wpk辅助,教程妙招(有挂方式)-哔哩哔哩cloudpok...
透视透视!菠萝辅助器免费版的特... 透视透视!菠萝辅助器免费版的特点(透视)德州私人局怎么透视,教程攻略(有挂头条)-哔哩哔哩透视透视!...
透视专业!hhpoker辅助软... 透视专业!hhpoker辅助软件是真的么(透视)安装不了wepoker,教程指南书(有挂方法)-哔哩...
透视详情!哈糖大菠萝开挂(透视... 透视详情!哈糖大菠萝开挂(透视)德普之星app安卓版破解版,教程妙计(有挂方针)-哔哩哔哩1、德普之...
透视曝光!来玩app破解(透视... 透视曝光!来玩app破解(透视)wepoker透视破解版,教程机巧(有挂功能)-哔哩哔哩1、让任何用...
透视普及!哈糖大菠萝有挂吗(透... 透视普及!哈糖大菠萝有挂吗(透视)wpk透视辅助靠谱吗,教程法子(揭秘有挂)-哔哩哔哩1、下载好哈糖...
透视解迷!xpoker怎么透视... 透视解迷!xpoker怎么透视(透视)werplan透视挂,教程总结(有挂方针)-哔哩哔哩1、xpo...
透视有挂!wpk辅助是什么(透... 透视有挂!wpk辅助是什么(透视)佛手在线大菠萝智能辅助器,教程经验(有挂猫腻)-哔哩哔哩1、佛手在...
透视透视!wepoker科技辅... 透视透视!wepoker科技辅助器(透视)wejoker免费脚本,教程大纲(有挂教学)-哔哩哔哩1、...