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。

相关内容

热门资讯

必备辅助推荐!蜀山四川小程序脚... 必备辅助推荐!蜀山四川小程序脚本,hh poker辅助有用吗,大神讲解(详细教程)是一款可以让一直输...
揭秘几款!微乐河南麻将辅助io... 揭秘几款!微乐河南麻将辅助ios,wepoker到底有没有透视,AI教程(有挂解密);1、很好的微乐...
关于!多乐跑得快辅助器,hhp... 关于!多乐跑得快辅助器,hhpoker是真的吗,揭秘教程(有挂攻略);多乐跑得快辅助器最新软件透明挂...
玩家必看科普!微乐小程序辅助收... 玩家必看科普!微乐小程序辅助收费,pokemmo脚本辅助器,透视教程(存在有挂);1、超多福利:超高...
盘点十款!朋朋政和软件辅助器,... 盘点十款!朋朋政和软件辅助器,wepoker透视脚本苹果版,安装教程(竟然有挂);1.朋朋政和软件辅...
分享认知!微信小程序辅助器破解... 分享认知!微信小程序辅助器破解版,德普之星私人局辅助免费,扑克教程(真的有挂);微信小程序辅助器破解...
一分钟秒懂!老友麻将辅助器,h... 您好:老友麻将辅助器这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特...
热点推荐!琼戏互娱破解版,aa... 热点推荐!琼戏互娱破解版,aapoker怎么设置提高好牌几率,德州论坛(真的有挂);1、很好的琼戏互...
让我来分享经验!打哈儿辅助软件... 让我来分享经验!打哈儿辅助软件,wepoker手机版透视脚本,软件教程(真的有挂),wepoker手...
实测交流!手机透视辅助器app... 您好,手机透视辅助器app这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩...