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。

相关内容

热门资讯

透视好牌"拱趴大菠萝... 透视好牌"拱趴大菠萝挂怎么安装"详细辅助必备教程(永久免费脚本神器)是一款可以让一直输的玩家,快速成...
透视挂透视"wepo... 透视挂透视"wepoker代打辅助"详细辅助玩家教程(可以开辅助辅助);人气非常高,ai更新快且高清...
透视系统"德州局怎么... 这是一款非常优秀的德州局怎么透视 ia辅助检测软件,能够让你了解到德州局怎么透视中牌率当中全部隐藏参...
透视有挂"wepok... 透视有挂"wepoker透视脚本免费app"详细辅助技巧教程(私人定制透视技巧);大神普及一款德州a...
透视好牌"哈糖大菠萝... 透视好牌"哈糖大菠萝有挂吗5个常用方法"详细辅助黑科技教程(内置辅助教程);科技安装教程;13670...
透视插件"wepok... 透视插件"wepoker软件靠谱么"详细辅助大神讲解(软件技巧);支持2-10人实时对战,虚拟庄家发...
透视教学"竞技联盟透... 自定义竞技联盟透视插件系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅助器,不管...
透视插件"hhpok... 透视插件"hhpoker智能辅助插件"详细辅助wpk教程(有辅助功能方法)是一款可以让一直输的玩家,...
透视好友房"wepo... 透视好友房"wepoker插件下载"详细辅助攻略教程(私人定制透视软件);大神普及一款德州ai内幕,...
透视神器"hh po... 透视神器"hh poker软件"详细辅助科技教程(辅助器安装包透视);hh poker软件软件透明挂...