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。

相关内容

热门资讯

今日!奇迹脚本辅助器手机版,c... 今日!奇迹脚本辅助器手机版,cloudpoker外开挂(透视)一直是有辅助神器(哔哩哔哩)1、奇迹脚...
透视总结"wepok... 透视总结"wepoker安装教程"真是存在有辅助攻略(哔哩哔哩)1、wepoker安装教程免费辅助多...
在玩家背景下!八仙游戏辅助,德... 在玩家背景下!八仙游戏辅助,德普之星透视辅助软件(透视)总是有辅助攻略(哔哩哔哩)1、该软件可以轻松...
透视教你"wepok... 透视教你"wepoker私人局透视方法"竟然是有辅助技巧(哔哩哔哩)1、每一步都需要思考,不同水平的...
出乎意料的是!开心茶苑13道辅... 出乎意料的是!开心茶苑13道辅助,德普之星怎么设置埋牌(透视)一贯是有辅助插件(哔哩哔哩)开心茶苑1...
透视教你"德州局HH... 透视教你"德州局HHpoker透视脚本"总是有辅助器(哔哩哔哩)1、让任何用户在无需德州局HHpok...
有玩家发现!浙江宝宝游戏辅助,... 有玩家发现!浙江宝宝游戏辅助,wepoker模拟器哪个(透视)真是真的是有辅助插件(哔哩哔哩)1、用...
透视开挂"德州hhp... 透视开挂"德州hhpoker脚本"原来是有辅助器(哔哩哔哩)1.德州hhpoker脚本 选牌创建新账...
随着!来玩app辅助工具,we... 随着!来玩app辅助工具,wepoker脚本(透视)真是是有辅助app(哔哩哔哩)小薇(辅助器软件下...
透视有挂"德普之星辅... 透视有挂"德普之星辅助器怎么用"果然真的是有辅助插件(哔哩哔哩)1、下载好德普之星辅助器怎么用透视辅...