4

次のクラスがあるとします。

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 に縛られていないので、これを行う無料のライブラリが他にあれば、喜んで切り替えます。

4

1 に答える 1

8

NBuilder に縛られていないので、AutoFixtureを使用すると、コレクションを操作するための規則を追加できます。

例として、従業員 10 人の Department インスタンスを作成するには、次のようにします。

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

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

これはほぼ同じ量のコードのように見えるかもしれませんが、より多くのコレクションを作成するためにコードを追加する必要がないため、スケーリングがはるかに優れています。

AutoFixture 3.0 では、コレクションの規則がデフォルトで存在します。つまり、MultipleCustomization を追加する必要さえありません。

于 2012-01-31T09:33:22.040 に答える