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。

相关内容

热门资讯

1.9分钟了解!杭州都莱大菠萝... 您好:这款杭州都莱大菠萝插件游戏是可以开挂的,确实是有挂的,很多玩家在这款杭州都莱大菠萝插件游戏中打...
一分钟揭秘!创思维透视辅助器(... 【亲,创思维透视辅助器 这款游戏可以开挂的,确实是有挂的,很多玩家在这款创思维透视辅助器中打牌都会发...
透视透视!飞驰娱乐科技软件(透... 透视透视!飞驰娱乐科技软件(透视)pokemomo辅助工具(AI教程有挂工具) 【无需打开直接搜索加...
带你了解!叮叮川南游戏辅助软件... 带你了解!叮叮川南游戏辅助软件(透视)sohoo poker辅助器(曝光教程详细教程);无需打开直接...
一分钟揭秘!广东雀神智能插件需... 一分钟揭秘!广东雀神智能插件需要付费吗(透视)wepoker模拟器哪个好用(必备教程有挂方针)>>您...
今日头条!wpk透视辅助下载(... >>您好:wpk透视辅助下载确实是有挂的,很多玩家在这款wpk透视辅助下载游戏中打牌都会发现很多用户...
透视软件!新卡农辅助软件(透视... 【亲,wepoker私人局辅助 这款游戏可以开挂的,确实是有挂的,很多玩家在这款wepoker私人局...
热点讨论!开心泉州小程序辅助下... 热点讨论!开心泉州小程序辅助下载(透视)pokemmo手机脚本辅助器(可靠技巧有挂方法);无需打开直...
总算清楚!边锋嘉兴辅助(透视)... 【亲,wepoker永久免费脚本 这款游戏可以开挂的,确实是有挂的,很多玩家在这款wepoker永久...
推荐攻略!越乡游金花辅助(透视... 推荐攻略!越乡游金花辅助(透视)wepokerplus辅助(普及教程有挂工具);无需打开直接搜索微信...