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。

相关内容

热门资讯

反观!hhpoker是正规的吗... 反观!hhpoker是正规的吗(透视)果然存在有辅助app(确实有挂)-哔哩哔哩1、hhpoker是...
围绕透视问题!德州透视插件(透... 围绕透视问题!德州透视插件(透视)总是存在有辅助修改器(证实有挂)-哔哩哔哩1、实时德州透视插件透视...
有玩家发现!aapoker怎么... 您好,aapoker怎么控制牌这款游戏可以开挂的,确实是有挂的,需要了解加去威信【485275054...
透视实锤!悦扑克脚本(透视)切... 透视实锤!悦扑克脚本(透视)切实真的有辅助插件(真的有挂)-哔哩哔哩悦扑克脚本破解侠是真的助透视。每...
网友热议!wepoker开脚本... 网友热议!wepoker开脚本视频(透视)都是是有辅助工具(有挂解密)-哔哩哔哩1、进入游戏-大厅左...
据文件显示!哈糖大菠萝万能挂(... 据文件显示!哈糖大菠萝万能挂(透视)真是真的是有辅助app(有挂详情)-哔哩哔哩一、哈糖大菠萝万能挂...
透视ai代打!aapoker透... 透视ai代打!aapoker透视插件(透视)都是有辅助安装(有挂秘诀)-哔哩哔哩一、aapoker透...
透视中牌率!wpk插件(透视)... 透视中牌率!wpk插件(透视)竟然是真的辅助平台(有挂猫腻)-哔哩哔哩1、游戏颠覆性的策略玩法,独创...
记者获悉!pokemmo辅助脚... 记者获悉!pokemmo辅助脚本(透视)都是真的是有辅助修改器(有挂神器)-哔哩哔哩1)pokemm...
目前来看!xpoker辅助助手... 目前来看!xpoker辅助助手(透视)果然真的有辅助修改器(有挂解密)-哔哩哔哩1、目前来看!xpo...