@RunWith(JUnitParamsRunner.class)
public class MySimpleTest {
private MyRec rec;
private Matrix matrix;
@Before
public void createRecognizerBeforeEveryExecution() {
rec = new MyRec();
matrix = MatrixUtils.createMatrixWithValues();
}
public static Iterable<Object[]> data() {
return Arrays.asList(
new Object[]{"expectedvalue1", "input1"},
new Object[]{"expectedvalue2", "input2"}
);
}
@Test
@Parameters(method = "data")
public void test1(String output, String input) {
rec.fun1(matrix);
assertEquals(output, rec.someFunction(input));
}
public static Iterable<Object[]> data2() {
return Arrays.asList(
new Object[]{"expectedothervalue1", "input1"},
new Object[]{"expectedothervalue2", "input2"}
);
}
@Test
@Parameters(method = "data2")
public void test2(String output, String input) {
rec.fun1(matrix);
rec.fun2(matrix);
assertEquals(output, rec.someFunction(input));
}
}
このテストを行う適切な方法を見つけようとしています。非常に便利な方法なので、パラメータ化されたテストを使用したいと思います。
ご覧のとおり、すべてのテスト関数で関数 ( fun1
and fun2
) を呼び出します。ただし、テストごとに 1 回だけ呼び出す必要があります (たとえば、各パラメーター化されたテストの実行前)。
すべてのパラメータ化されたテストを実行する前に、他の関数を実行する必要があることを JUnitParams に伝える方法はありますか?
@Before
ご覧のとおり、使用していないため、注釈を使用できませtest1
んfun2
。別の関数で実行する必要があると思います。