JUnitParamsライブラリの使用を検討して、さらにいくつかの(よりクリーンな)オプションを使用できます。
@org.junit.runner.RunWith(junitparams.JUnitParamsRunner.class)
public class ParameterizedTest {
@org.junit.Test
@junitparams.Parameters(method = "data")
public void test1(File file) throws Exception { }
@org.junit.Test
@junitparams.Parameters(method = "data")
public void test2(File file) throws Exception { }
public static File[] data() {
return new File[] { new File("path1"), new File("path2") };
}
}
@org.junit.runner.RunWith(junitparams.JUnitParamsRunner.class)
public class ParameterizedTest {
@org.junit.Test
@junitparams.Parameters(value = { "path1", "path2" })
public void test1(String path) throws Exception {
File file = new File(path);
}
@org.junit.Test
@junitparams.Parameters(value = { "path1", "path2" })
public void test2(String path) throws Exception {
File file = new File(path);
}
}
あなたはここで使用のより多くのサンプルを見ることができます。
さらに、JUnitParamsについて、パラメーター化されたテストの記述が簡単で読みやすい理由:
JUnitParamsプロジェクトは、JUnitに新しいランナーを追加し、JUnit> = 4.6のはるかに簡単で読みやすいパラメーター化されたテストを提供します。
標準のJUnit Parametrisedランナーとの主な違い:
- より明示的-パラメータは、クラスフィールドではなく、テストメソッドのパラメータにあります
- 少ないコード-パラメータを設定するためにコンストラクタは必要ありません
- パラメータ化されたメソッドとパラメータ化されていないメソッドを1つのクラスで混在させることができます
- パラメータは、CSV文字列として、またはパラメータプロバイダクラスから渡すことができます。
- パラメータープロバイダークラスには、メソッドを提供するパラメーターを必要な数だけ含めることができるため、さまざまなケースをグループ化できます。
- パラメータを提供するテストメソッドを持つことができます(外部クラスや静的クラスはもうありません)
- IDEで実際のパラメーター値を確認できます(JUnitのParametrisedでは、パラメーターの連続した数のみです)