を使用してカスタム オブジェクトのリストを作成したいと考えていますAutoFixture。最初のNオブジェクトのプロパティを 1 つの値に設定し、残りのオブジェクトを別の値に設定する (または単にFixtureのデフォルト戦略で設定する) ようにします。
を使用できることは承知していますが、これはリストのすべてのメンバーにFixture.CreateMany<T>.With関数を適用します。
には、この機能を提供するおよび(とりわけ)NBuilderという名前のメソッドがあります。使用例:TheFirstTheNext
与えられたクラスFoo:
class Foo
{
public string Bar {get; set;}
public int Blub {get; set;}
}
Foo次のように一連の s をインスタンス化できます。
class TestSomethingUsingFoo
{
/// ... set up etc.
[Test]
public static void TestTheFooUser()
{
var foosToSupplyToTheSUT = Builder<Foo>.CreateListOfSize(10)
.TheFirst(5)
.With(foo => foo.Bar = "Baz")
.TheNext(3)
.With(foo => foo.Bar = "Qux")
.All()
.With(foo => foo.Blub = 11)
.Build();
/// ... perform the test on the SUT
}
}
Fooこれにより、次のプロパティを持つタイプのオブジェクトのリストが得られます。
[Object] Foo.Bar Foo.Blub
--------------------------------
0 Baz 10
1 Baz 10
2 Baz 10
3 Baz 10
4 Baz 10
5 Qux 10
6 Qux 10
7 Qux 10
8 Bar9 10
9 Bar10 10
(Bar9とのBar10値はNBuilderのデフォルトの命名スキームを表します)
を使用してこれを達成する「組み込み」の方法はありAutoFixtureますか? または、このように動作するようにフィクスチャを設定する慣用的な方法はありますか?