2012-02-21 7 views
1

これはJUnitの一般的な質問ですが、Selenium WebDriverを使ったブラウザの自動化が必要です。JUnit(WebDriver)テストを何度もやり直すにはどうすればよいですか?

1つのJUnitテストクラスを実行するJUnit4 TestSuiteがあります。私のJUnitテストクラスには、ウェブページを記入する10のテストメソッドがあります。このJUnitテストクラスには、テスト用のデータを保持するListオブジェクトがあります。 StackOverflowのユーザーのための私の質問がある

// all data for my tests can be grabbed using the get(0) method 
testListObject.getPersonEntity.get(0).getName(); 

:それは私のオブジェクトに複数のテストを介して実行するように私は私のJUnitテストをリファクタリングするにはどうすればよい

私は現在、そのようなリストのオブジェクトにアクセスすることにより、ユニットテストを駆動することができますリスト?言い換えれば

  1. それはリストをループし、何とかループ内の各時間をオフに解雇するために、すべてのテストメソッドを取得するメソッドを作成することは可能ですか?これは意味をなさないでしょうか?単体テストは、ページを塗りつぶすたびに終了するのではなく、リスト内のすべてのテストケースのページを塗りつぶした後にのみ終了します。

  2. また、テストリストをTestSuiteオブジェクトに移動して何らかの方法でUnitテストクラスを複数回呼び出す必要がありますか?もしそうなら、どうですか?

これを達成する方法がわかりません。JUnitの仕組みに慣れていません。言い換えれば、「テスト」メソッドがどのように機能しなくなったかを理解していないので、JUnitテストを複数回実行する適切な方法は現在わかりません。もう一つの質問:TestSuiteクラスを使ってユニットテストクラスを複数回呼び出す方法はありますか?テストを実行する異なる鑑定引数(Listから)

答えて

2

JUnitのParameterizedとを参照してください。私は彼らがあなたが必要とするものを提供すると思う。もう少し助けを求める場合はthis past SO link.を参照してください。@RunWith(Parameterized.class)を使用するだけで、それぞれの実行に必要なデータ(リスト、配列、または一部のコレクション)を返すParameterized.Parametersの注釈付きメソッドを提供してください。最も奇妙なことは、あなたの反復可能なデータの入力タイプを取るテストクラス。

+0

ありがとうございました。はい、それはコンストラクタのように見え、また、パラメータリストを取得するメソッドは両方とも反射で呼び出され、arenot/shouldnotは直接呼び出されません。最初は混乱していました。 – djangofan

関連する問題