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。

相关内容

热门资讯

第3分钟法子!桃乐甘肃麻将辅助... 第3分钟法子!桃乐甘肃麻将辅助器,禅游指尖四川修改器,规律教程(真实有挂)-哔哩哔哩1、禅游指尖四川...
四分钟演示!三哥玩辅助器,丽水... 四分钟演示!三哥玩辅助器,丽水都莱脚本辅助,介绍教程(有挂技术)-哔哩哔哩1、每一步都需要思考,不同...
一分钟攻略!兴动互娱软件辅助下... 一分钟攻略!兴动互娱软件辅助下载,禅游游戏辅助脚本,可靠教程(有挂总结)-哔哩哔哩1、兴动互娱软件辅...
两分钟方案!广东雀神挂件定制,... 两分钟方案!广东雀神挂件定制,微信新九游辅助,第三方教程(有挂细节)-哔哩哔哩1、广东雀神挂件定制透...
1分钟课程!微乐江西小程序辅助... 1分钟课程!微乐江西小程序辅助器免费,赣牌圈挂安装图解,细节方法(有挂透视)-哔哩哔哩1、很好的工具...
第2分钟项目!人人燕赵挂,潮汕... 第2分钟项目!人人燕赵挂,潮汕掌手娱辅助器,软件教程(有挂方式)-哔哩哔哩1)潮汕掌手娱辅助器辅助挂...
第9分钟攻略!新道游开挂辅助透... 第9分钟攻略!新道游开挂辅助透视,阿拉游戏中心辅助,透明挂教程(揭秘有挂)-哔哩哔哩1、新道游开挂辅...
8分钟讲义!中至赣牌圈科技,兴... 8分钟讲义!中至赣牌圈科技,兴动互娱脚本,必胜教程(证实有挂)-哔哩哔哩1、打开软件启动之后找到中间...
一分钟要领!福建兄弟水挂,川友... 一分钟要领!福建兄弟水挂,川友汇辅助软件,总结教程(有挂实锤)-哔哩哔哩1、这是跨平台的川友汇辅助软...
7分钟项目!九九山城插件程序,... 7分钟项目!九九山城插件程序,拱趴游戏诀窍,科技教程(有挂分享)-哔哩哔哩1、九九山城插件程序透视辅...