使用AutoFixture C#创建具有特定值的列表 [英] Create a list with specific values with Autofixture C#
本文介绍了使用AutoFixture C#创建具有特定值的列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
模型具有Id
、Code
等属性。
我要创建4个具有特定不同代码的数据。
var data = _fixture.Build<MyModel>()
.With(f => f.Code, "A")
.CreateMany(4);
这将导致所有4个数据的代码为A&Quot;。我希望这4个数据具有代码A&q;、B&q;、C&q;、D&q;
提前谢谢
推荐答案
假设您只需要4个项目,您可以定义代码集合,并使用它通过LINQ生成4个模型。
public static object[][] Codes =
{
new object[] { new[] { "A", "B", "C", "D" } }
};
[Theory]
[MemberAutoData(nameof(Codes))]
public void Foo(string[] codes, Fixture fixture)
{
var builder = fixture.Build<MyModel>(); // Do any other customizations here
var models = codes.Select(x => builder.With(x => x.Code, x).Create());
var acutal = models.Select(x => x.Code).ToArray();
Assert.Equal(codes, acutal);
}
public class MyModel
{
public int Id { get; set; }
public string Code { get; set; }
}
这篇关于使用AutoFixture C#创建具有特定值的列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文