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。

相关内容

热门资讯

黑科技透视器!微信小程序微乐房... 黑科技透视器!微信小程序微乐房间怎么辅助(透视器),微乐合肥红中麻将真是是真的有透视挂攻略1、微信小...
黑科技辅助器!微乐春天扑克开挂... 黑科技辅助器!微乐春天扑克开挂辅助插件(辅助器),微乐陕西捉老麻子本来是真的有透视挂app一、微乐春...
黑科技透视器!微乐智能辅助真的... 黑科技透视器!微乐智能辅助真的假的(透视器),微乐云南麻将都是存在有透视挂软件;1、微乐智能辅助真的...
黑科技开挂!微信小程序游戏修改... 黑科技开挂!微信小程序游戏修改器(开挂),微乐吉林麻将都是是有透视挂攻略;微信小程序游戏修改器辅助器...
黑科技透视器!微信微乐游戏辅助... 黑科技透视器!微信微乐游戏辅助器(透视器),微乐打炸其实存在有透视挂插件1、金币登录送、破产送、升级...
黑科技外挂!微信微乐游戏辅助脚... 黑科技外挂!微信微乐游戏辅助脚本(外挂),微乐够级总是有透视挂软件1、操作简单,无需微信微乐游戏辅助...
黑科技开挂!微乐陕西小程序破解... 黑科技开挂!微乐陕西小程序破解器下载(开挂),微乐辽宁斗地主其实真的是有透视挂方法进入游戏-大厅左侧...
黑科技作弊器!微乐小程序授权(... 黑科技作弊器!微乐小程序授权(作弊器),微乐红中麻将总是是真的有透视挂脚本1、任何微乐小程序授权透视...
黑科技透视器!微乐小程序黑科技... 黑科技透视器!微乐小程序黑科技免费(透视器),微乐棋牌麻将真是真的是有透视挂方法1、微乐小程序黑科技...
黑科技外挂!微乐小程序有脚本(... 黑科技外挂!微乐小程序有脚本(外挂),微乐斗地主填大坑总是有透视挂脚本暗藏猫腻,小编详细说明微乐小程...