2012-03-07 9 views
1

セットアップメソッドで設定された変数に依存するテストが1つのクラスにあります。したがって、すべてのテストを異なるグローバル変数で複数回実行できるのは良いことです。すべてのテストのJUnit理論 - パラメータ化されたセットアップメソッドのみが必要

私は、Theoryを1回のテストで使用できることは知っていますが、すべてのテストに使用したいと思います。私の最初のアプローチは、セットアップメソッドが引数を持つことができないというエラーに終わりました。

私はこれを回避する方法がありますか?私はクラス内のすべての単一のテストに注釈を付け、中央の設定方法で処理できる場合は、いくつかの設定ロジックを追加したくありません。

答えて

2

Parameterizedを見ましたか?

@RunWith(Parameterized.class) 
public class FibonacciTest { 
    @Parameters 
    public static Iterable<Object[]> data() { 
     return Arrays.asList(new Object[][] { { 0, 0 }, { 1, 1 }, { 2, 1 }, 
       { 3, 2 }, { 4, 3 }, { 5, 5 }, { 6, 8 } }); 
    } 

    private int fInput; 
    private int fExpected; 

    public FibonacciTest(int input, int expected) { 
     fInput= input; 
     fExpected= expected; 
    } 

    @Test 
    public void test() { 
     assertEquals(fExpected, Fibonacci.compute(fInput)); 
    } 
} 

FibonacciTestの各インスタンスは、2つの引数のコンストラクタと@Parameters方法でデータ値を使用して構築されるであろう。

+0

昨夜、感謝しました:-)私は理論は新しい方法ですが、かなりカバーしません。 –

関連する問題