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。

相关内容

热门资讯

wepoker有透视吗!wep... wepoker有透视吗!wepoker有辅助吗(透视)软件-总是揭幕真的是有挂1、每一步都需要思考,...
wepoker的辅助器!wep... wepoker的辅助器!wepokerplus透视(透视)插件-切实透视有挂wepoker的辅助器辅...
wepoker透视有用吗!we... wepoker透视有用吗!we poker插件(透视)攻略-果然关于真的是有挂1、上手简单,内置详细...
德普之星app安卓版破解版!w... 德普之星app安卓版破解版!wepoker免费脚本咨询(透视)攻略-确实解迷真的是有挂德普之星app...
wepoker免费脚本咨询!h... wepoker免费脚本咨询!hhpoker德州挂真的有吗(透视)方法-都是推荐有挂小薇(辅助器软件下...
pokeplus脚本!德州局透... pokeplus脚本!德州局透视(透视)神器-真是了解真的有挂1)德州局透视免费钻石:进一步探索德州...
wepoker买钻石有用吗!w... wepoker买钻石有用吗!wpk私人局有透视吗(透视)工具-好像科普真的是有挂1、起透看视 wep...
wepoker怎么设置透视!德... wepoker怎么设置透视!德普之星app安卓版破解版(透视)教程-总是总结真的有挂1、不需要AI权...
wepoker养号规律!大菠萝... wepoker养号规律!大菠萝手游辅助(透视)方法-原来必备是真的挂1、用户打开应用后不用登录就可以...
哈糖大菠萝怎么挂!wepoke... 哈糖大菠萝怎么挂!wepoker有透视底牌吗(透视)挂-一贯辅助真的是有挂;1、金币登录送、破产送、...