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。

相关内容

热门资讯

解谜透视!大菠萝789辅助器下... 解谜透视!大菠萝789辅助器下载,xpoker辅助怎么用(透视)其实存在有辅助技巧(哔哩哔哩)1、实...
曝光透视!哈糖大菠萝免费辅助器... 曝光透视!哈糖大菠萝免费辅助器,德州机器人代打脚本(透视)真是是真的有辅助脚本(哔哩哔哩);1、哈糖...
解谜透视!xpoker怎么作必... 解谜透视!xpoker怎么作必弊,竞技联盟辅助(透视)确实一直都是有辅助脚本(哔哩哔哩)1、游戏颠覆...
了解透视!xpoker透视辅助... 了解透视!xpoker透视辅助,sohoo辅助(透视)一直是真的有辅助攻略(哔哩哔哩)1、xpoke...
曝光透视!pokemmo辅助器... 曝光透视!pokemmo辅助器,pokemmo辅助脚本(透视)好像真的是有辅助方法(哔哩哔哩)1、打...
分享透视!哈糖大菠萝挂,soh... 您好,哈糖大菠萝挂这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】很多玩家在...
分享透视!pokemmo手机辅... 分享透视!pokemmo手机辅助软件,佛手大菠萝有挂吗(透视)一直存在有辅助脚本(哔哩哔哩)1、上手...
专业透视!sohoo开挂辅助,... 专业透视!sohoo开挂辅助,哈糖大菠萝开挂(透视)切实一直都是有辅助攻略(哔哩哔哩)1.哈糖大菠萝...
科普透视!智星德州插件,wer... 科普透视!智星德州插件,werplan辅助软件(透视)竟然真的有辅助工具(哔哩哔哩)1、实时werp...
科普透视!约局吧德州真的有透视... 科普透视!约局吧德州真的有透视挂吗,agpoker辅助(透视)本来有辅助技巧(哔哩哔哩)1)约局吧德...