gpt4 book ai didi

.net - 如何使用 NBuilder 自动创建子集合?

转载 作者:行者123 更新时间:2023-12-04 23:28:10 25 4
gpt4 key购买 nike

给定以下类:

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,所以如果有另一个免费的库可以做到这一点,我会非常乐意切换。

最佳答案

由于您没有绑定(bind)到 NBuilder,使用 AutoFixture您可以添加conventions for working with collections .

例如,要创建一个有 10 名员工的部门实例,您可以这样做:

var fixture = new Fixture().Customize(new MultipleCustomization());
fixture.RepeatCount = 10;

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

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

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

关于.net - 如何使用 NBuilder 自动创建子集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9072571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com