2012-04-04 5 views
0

1つのJUnitテストの結果/出力を同じクラスの別のテストと比較できますか?以下1つのJUnit @Testと同じクラスの別の@Testとの結果を比較する

Iは3 @Testにおける変数A & Bの値を表示すると

Public class CompareResult { 

@Before 
{ 
open driver 
} 

@After 
{ 
quit driver 
} 

@Test 
{ 
Connect to 1st website 
Enter data and calculate value 
Store the value in Variable A 
} 


@Test 
{ 
Connect to 2nd website 
Enter data and calculate value 
Store the value in Variable B 
} 

@Test 
{ 
Compare A and B 
} 
} 

のアルゴリズムは、それがNULLです。 JUnitで別の@Testにある@Testに変数を使用することはできませんか?私はJUnitを新しく紹介します。

答えて

2

なぜ2つのテストが必要ですか?値を比較している場合は、実際には複数のメソッドを持つ1つのテストと、おそらく複数のアサートがあります。また、ヘルパー1とヘルパー2にアサーションがない場合、これはさらに顕著になります。断言なしのテストは、それが爆破しないというテストです! JUnitの中に具体的

private helper1 
{ 
    // Connect to 1st website 
    // Enter data and calculate value 
    // Store the value in Variable A 
} 


private helper2 
{ 
    // Connect to 2nd website 
    // Enter data and calculate value 
    // Store the value in Variable B 
} 

@Test actualTest 
{ 
    // Compare A and B with assertion 
} 
+0

私は1つのTestアノテーションと3つのメソッドを試しましたが、Testアノテーションの次のメソッドだけが実行されています。お知らせ下さい。 –

+0

テストアノテーションを持つメソッドから他の2つのメソッドを呼び出す必要があります。通常のJavaの場合と同じです。 –

+0

サンクス、それは働いた。 –

0

あなたが理解したようにローカル変数に値を格納します。プライベートフィールドAとBを最初に宣言し、それを使用してデータを格納します。

Public class CompareResult { 

    private String a = null; 
    private String b = null; 

    @Before 
    public void Setup() { 
     open driver 
    } 
    ... 

ところで、あなたのテストが独立すると、別のに一つのテストから値を渡すと、それらを実装するための良い方法ではないはずです。また、私はjunitで多くの作業をしなかったので、テストの実行順序がどのように設定されているのか分かりません。いくつかのテストの依存関係を定義する必要があります。もう一度やり直してください。これはテストでは正しくありません。

+0

、これらの変数は 'static'こととセッターとゲッター –

+1

実行順序はJUnitのバージョンの間で可変であると宣言されなければなりません。それは通常ではありませんが、可能性があります。さらに重要なのは、JUnitは各テストで新しいインスタンスを自由に作成できることです。つまり、ローカル変数に格納することはできません。静的ではありますが、依然として悪い設計です。 –

+0

Thanq all。静的変数として定義され、機能しました。 –

関連する問題