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游戏... 技巧辅助挂!wepoker游戏的安装教程,德扑之星辅助工具如何打开,本来真的是有挂(有挂秘诀)德扑之...
分享实测!wepoker挂,h... 分享实测!wepoker挂,hhpoker辅助,一贯是有挂(确实有挂)1)有没有挂:进一步探索有辅助...
近期!wepoker私局辅助,... 近期!wepoker私局辅助,德普之星怎么开辅助,本来存在有挂(有挂方法)1、德普之星怎么开辅助免费...
玩家必知教程!wepoker辅... 玩家必知教程!wepoker辅助是真的吗,hhpoker是内部控制吗,竟然真的是有挂(有挂方略)1、...
据权威媒体报道!newpoke... 据权威媒体报道!newpoker脚本,德扑之心免费透视,一直真的是有挂(有挂方略)1、每一步都需要思...
技术分享!约局吧德州有挂吗,哈... 技术分享!约局吧德州有挂吗,哈糖大菠萝软件下载,总是存在有挂(有挂攻略)亲,关键说明,透视脚本安卓赛...
软件辅助挂!微扑克辅助下载,德... 软件辅助挂!微扑克辅助下载,德普之星辅助软件,果然是真的有挂(讲解有挂)1、完成德普之星辅助软件有辅...
一分钟快速了解!拱趴大菠萝挂哪... 一分钟快速了解!拱趴大菠萝挂哪里,wepoker底牌透视,竟然存在有挂(揭秘有挂)1、拱趴大菠萝挂模...
为切实保障!wepoker辅助... 为切实保障!wepoker辅助器下载,智星德州插件,真是是有挂(有挂存在)1、智星德州插件透视辅助软...
盘点一款!哈糖大菠萝有挂吗,a... 盘点一款!哈糖大菠萝有挂吗,aapoker ai插件,本来是有挂(存在有挂);1、辅助器安装包、辅助...