junit 4でのパラメータ化テスト
package com.zlp.test;
import static org.junit.Assert.*;
import java.util.Arrays;
import java.util.Collection;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
import com.zlp.utils.Calculation;
@RunWith(Parameterized.class)
public class ParameterTest {
private static Calculation calc;
private int expceted;
private int input1;
private int input2;
@Before
public void init(){
calc = new Calculation();
}
@Parameters
public static Collection prepareData(){
Object[][] object = {{3,1,2},{4,2,2},{-5,-7,2},{0,-4,4}};
return Arrays.asList(object);
}
public ParameterTest(int expceted, int input1, int input2) {
this.expceted = expceted;
this.input1 = input1;
this.input2 = input2;
}
@Test
public void testAdd(){
assertEquals(this.expceted, calc.add(input1, input2));
}
}
注意点:
クラスの宣言で@RunWith(Parameterized.class)を宣言すると、クラスはデフォルトのテストランナを使用しないことを示し、提供されるメソッドで@Parametersメソッドを設定して修飾します.
同時に各パラメータに値を割り当て、最後にテストクラスを作成します.
以上の例のテストはすべて合格し、objectの値を{4,1,2}などに変更するとエラーが発生します.
すべてのアクチュエータはorgから継承する.junit.runner.Runner