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。

相关内容

热门资讯

实测教程!龙江填大坑辅助功能a... 实测教程!龙江填大坑辅助功能app,龙江填大坑都是有辅助app1.龙江填大坑 选牌创建新账号,点击进...
重大发现!蜜瓜大厅辅助器功能方... 重大发现!蜜瓜大厅辅助器功能方法,蜜瓜大厅好像真的有辅助器方法1、蜜瓜大厅脚本辅助下载、蜜瓜大厅免费...
专业讨论!娱网麻将辅助功能工具... 专业讨论!娱网麻将辅助功能工具,娱网麻将原来是真的有辅助工具1、完成娱网麻将辅助器v3.3的残局,帮...
教学盘点!抢庄牛牛辅助功能插件... 教学盘点!抢庄牛牛辅助功能插件,抢庄牛牛原来存在有辅助插件抢庄牛牛破解侠是真的助透视。每个模型中均包...
玩家亲测!海豚大厅透视功能攻略... 玩家亲测!海豚大厅透视功能攻略,海豚大厅确实是有透视攻略玩家亲测!海豚大厅透视功能攻略,海豚大厅确实...
玩家必看!博雅红河棋牌辅助器功... 玩家必看!博雅红河棋牌辅助器功能工具,博雅红河棋牌一贯有辅助器工具1、全新机制【博雅红河棋牌ai辅助...
热点推荐!永乐跑胡子辅助功能脚... 热点推荐!永乐跑胡子辅助功能脚本,永乐跑胡子原来真的是有辅助脚本1、永乐跑胡子辅助器安装包、永乐跑胡...
揭秘真相!今日长牌辅助器功能a... 揭秘真相!今日长牌辅助器功能app,今日长牌都是存在有辅助器app1、完成今日长牌辅助器v3.3的残...
今日焦点!宝石娱乐开挂功能脚本... 今日焦点!宝石娱乐开挂功能脚本,宝石娱乐真是真的是有开挂脚本1、宝石娱乐有没有辅助教程、宝石娱乐有透...
热门推荐!新海贝之城透视挂功能... 热门推荐!新海贝之城透视挂功能软件,新海贝之城原来真的是有透视挂软件1、新海贝之城免费辅助多个强度级...