7

を使用してカスタム オブジェクトのリストを作成したいと考えています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ますか? または、このように動作するようにフィクスチャを設定する慣用的な方法はありますか?

4

1 に答える 1