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。

相关内容

热门资讯

透视推荐!红龙poker辅助平... 透视推荐!红龙poker辅助平台(透视)hhpoker到底可以透视码,教程步骤(有挂秘笈)-哔哩哔哩...
透视专业!红龙poker辅助(... 透视专业!红龙poker辅助(透视)wepoker开脚本视频,教程指引(有挂详细)-哔哩哔哩一、we...
透视详情!pokemmo脚本(... 透视详情!pokemmo脚本(透视)wepoker私人局规律,教程学习(有挂实锤)-哔哩哔哩wepo...
透视揭幕!cloudpoker... 透视揭幕!cloudpoker透视(透视)xpoker辅助器,教程绝活儿(真实有挂)-哔哩哔哩;1、...
透视科普!hh poker辅助... 透视科普!hh poker辅助器先试用(透视)wpk有透视吗,教程总结(有挂总结)-哔哩哔哩1、超多...
透视揭幕!wepoker透视a... 透视揭幕!wepoker透视app下载(透视)德州透视脚本,教程策略(有挂详细)-哔哩哔哩1、点击下...
透视解密!wpk俱乐部辅助器(... 透视解密!wpk俱乐部辅助器(透视)wepoker有透视底牌吗,教程法子(有挂分享)-哔哩哔哩1、全...
透视解谜!wepoker免费脚... 透视解谜!wepoker免费脚本咨询(透视)wpk免费辅助,教程窍要(有挂详细)-哔哩哔哩1、打开软...
透视开挂!hhpoker到底可... 透视开挂!hhpoker到底可以透视吗(透视)智星菠萝透视,教程项目(揭秘有挂)-哔哩哔哩1、完成h...
透视解密!wejoker辅助软... 透视解密!wejoker辅助软件视频(透视)pokernow辅助控制,教程诀窍(有挂讲解)-哔哩哔哩...