だから私はこれに何度も遭遇しました、そしてあなたがそれについて行っている方法は解決策です. しかし、ParameterSupplier各レベルを詳細に制御できる素敵なパターン ( を使用) を見つけました。次のテストを想像してください。
@Theory
public void testSetup1(@DefaultAList @DefaultBList @DefaultCList A a){...}
@Theory
public void testSetup2(@DefaultAList @DefaultBList @SomeOtherCList(config="blah") A a){...}
私が持っているパターンを使用することで、インスタンスの構造全体を簡単に制御できます。基本的な考え方は、TestSupplierクラスのインスタンスを作成するための静的メソッドを持つクラスがあるということです。でTestSupplier使用できる注釈を提供するParameterSupplierため、Theories. これらを使用すると、複雑なマルチレベル オブジェクトの作成方法を指定できます。
テストの例を次に示します。
のセットアップ方法を示すサンプル プロジェクト全体を次に示しTestSuppliersます。
ExampleTestのテスト例を次に示します。
@Theory
public void test1(
        @DefaultTopBean @SingleMiddleBean @SingleValidBottomBean 
            TopBean topBean) {...}
@Theory
public void test2(
        @DefaultTopBean @SingleMiddleBean @InvalidBottomBean 
            TopBean topBean) {...}
@Theory
public void test3(
         @DefaultTopBean 
         @MiddleBeansWithState(states = { State.State1, State.State3 }) 
         @MultipleValidBottomBean(count = 2) 
               TopBean topBean) {...}