首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何用NBuilder自动创建子集合?

如何用NBuilder自动创建子集合?
EN

Stack Overflow用户
提问于 2012-01-31 07:58:13
回答 1查看 1.1K关注 0票数 4

给定以下类:

代码语言:javascript
复制
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名员工:

代码语言:javascript
复制
var employees = Builder<Employee>.CreateListOfSize(10).Build();
var department = Builder<Department>
    .CreateNew()
    .With(d=>d.Employees = employees)
    .Build();

这适用于数量较少的集合,但对于较大的集合会变得很麻烦。有没有办法让NBuilder自动填充对象中的所有集合?

顺便说一句,我并不依赖于NBuilder,所以如果有另一个免费的库可以做到这一点,我将非常乐意改用它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-31 17:33:22

由于您不依赖于NBuilder,因此可以使用AutoFixture添加conventions for working with collections

例如,要创建一个包含10名员工的Department实例,您可以这样做:

代码语言:javascript
复制
var fixture = new Fixture().Customize(new MultipleCustomization());
fixture.RepeatCount = 10;

var dep = fixture.CreateAnonymous<Department>();

这可能看起来代码数量大致相同,但它的伸缩性要好得多,因为您不需要添加更多的代码来填充更多的集合-这只是按照惯例发生的。

在AutoFixture 3.0中,集合的约定将默认存在,这意味着您甚至不需要添加MultipleCustomization。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9072571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档