を使用してカスタム オブジェクトのリストを作成したいと考えていますAutoFixture
。最初のN
オブジェクトのプロパティを 1 つの値に設定し、残りのオブジェクトを別の値に設定する (または単にFixture
のデフォルト戦略で設定する) ようにします。
を使用できることは承知していますが、これはリストのすべてのメンバーにFixture.CreateMany<T>.With
関数を適用します。
には、この機能を提供するおよび(とりわけ)NBuilder
という名前のメソッドがあります。使用例:TheFirst
TheNext
与えられたクラス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
ますか? または、このように動作するようにフィクスチャを設定する慣用的な方法はありますか?