给定以下类:
class Department
{
public String Name { get; set; }
public IList<Employee> Employees { get; set; }
}
class Employee
{
public String Name { get; set; }
public String Address { get; set; }
}使用NBuilder,我可以创建一个部门对象,并通过以下方式分配10名员工:
var employees = Builder<Employee>.CreateListOfSize(10).Build();
var department = Builder<Department>
.CreateNew()
.With(d=>d.Employees = employees)
.Build();这适用于数量较少的集合,但对于较大的集合会变得很麻烦。有没有办法让NBuilder自动填充对象中的所有集合?
顺便说一句,我并不依赖于NBuilder,所以如果有另一个免费的库可以做到这一点,我将非常乐意改用它。
发布于 2012-01-31 17:33:22
由于您不依赖于NBuilder,因此可以使用AutoFixture添加conventions for working with collections。
例如,要创建一个包含10名员工的Department实例,您可以这样做:
var fixture = new Fixture().Customize(new MultipleCustomization());
fixture.RepeatCount = 10;
var dep = fixture.CreateAnonymous<Department>();这可能看起来代码数量大致相同,但它的伸缩性要好得多,因为您不需要添加更多的代码来填充更多的集合-这只是按照惯例发生的。
在AutoFixture 3.0中,集合的约定将默认存在,这意味着您甚至不需要添加MultipleCustomization。
https://stackoverflow.com/questions/9072571
复制相似问题