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。

相关内容

热门资讯

经调查!pokeplus脚本,... 经调查!pokeplus脚本,广东老友麻将有挂吗,总是是真的有辅助app(哔哩哔哩)1、广东老友麻将...
教你透视!德州机器人代打脚本,... 教你透视!德州机器人代打脚本,pokerworld辅助器(透视)真是存在有辅助app(哔哩哔哩)1)...
教你透视!大菠萝免费辅助器,s... 教你透视!大菠萝免费辅助器,sohoo开挂辅助(透视)一直一直总是有辅助脚本(哔哩哔哩)1、大菠萝免...
记者获悉!wepokerh5破... 记者获悉!wepokerh5破解,微信小程序开心泉州辅助器,真是是真的有辅助神器(哔哩哔哩)1、游戏...
开挂透视!epoker透视底牌... 开挂透视!epoker透视底牌,佛手大菠萝有挂吗(透视)总是是真的有辅助脚本(哔哩哔哩)1、在佛手大...
昨日!pokermaster修... 昨日!pokermaster修改器,拱趴大菠萝系统规律,好像存在有辅助神器(哔哩哔哩)1、拱趴大菠萝...
揭露透视!拱趴大菠萝挂哪里,约... 揭露透视!拱趴大菠萝挂哪里,约局吧app有挂吗(透视)其实是真的有辅助工具(哔哩哔哩)1、完成拱趴大...
一直以来!德州hhpoker是... 一直以来!德州hhpoker是真的吗,决战卡五星辅助软件,一直有辅助攻略(哔哩哔哩)进入游戏-大厅左...
详情透视!pokernow辅助... 您好,werplan怎么作必弊这款游戏可以开挂的,确实是有挂的,需要了解加去威信【485275054...
最新消息!智星菠萝辅助,雀友会... 最新消息!智星菠萝辅助,雀友会广东潮汕麻雀有挂么,总是真的是有辅助方法(哔哩哔哩)进入游戏-大厅左侧...