JUnit4を使用している場合は、@Parameterizedを確認できます。基本的な考え方は、実行することのリストを提供し、JUnitがリスト内の各項目に対して同じテストメソッドを実行することです。
バージョン4.10では、名前はそれほど大きくありません。名前として0、1、2 ...を取得しますが、4.11-beta-1(まもなくベータ版がリリースされる予定です)を使用すると、より優れた名前付けスキームを取得できます。名前を指定できるからです。@Parameterizedの上部にあるjavadocを参照してください。
@RunWith(Parameterized.class)
public class FibonacciTest {
@Parameters(name= "{index}: fib({0})={1}") // we specify the name here
public static Iterable<Object[]> data() {
return Arrays.asList(new Object[][] { { 0, 0 }, { 1, 1 }, { 2, 1 },
{ 3, 2 }, { 4, 3 }, { 5, 5 }, { 6, 8 } });
}
private int fInput;
private int fExpected;
public FibonacciTest(int input, int expected) {
fInput= input;
fExpected= expected;
}
@Test
public void test() {
assertEquals(fExpected, Fibonacci.compute(fInput));
}
}
上記では、次のような名前になります
fib(0)=0
fib(1)=1
fib(2)=1
等