1. ホーム

[解決済み】パラメタライズドテストの名前を変更する

2022-04-10 03:44:14

質問

JUnit4 でパラメータ化されたテストを使用する場合、独自のテストケース名を設定する方法はありますか?

デフォルトの - を変更したいのですが。 [Test class].runTest[n] - を意味のあるものに変更してください。

どのように解決するのですか?

この機能は JUnit 4.11 .

パラメータ化されたテストの名前を変更することを利用するには、と言うことですね。

@Parameters(name="namestring")

namestring は文字列であり、以下の特殊なプレースホルダーを持つことができる。

  • {index} - この引数の集合のインデックス。 デフォルトの namestring {index} .
  • {0} - このテストの実行による最初のパラメータ値。
  • {1} - 2番目のパラメータ値
  • など

テストの最終的な名前は、テストメソッドの名前に続いて namestring を括弧で囲むと、以下のようになる。

例えば、(ユニットテストから引用した) Parameterized アノテーション)。

@RunWith(Parameterized.class)
static public class FibonacciTest {

    @Parameters( name = "{index}: fib({0})={1}" )
    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 final int fInput;
    private final int fExpected;

    public FibonacciTest(int input, int expected) {
        fInput= input;
        fExpected= expected;
    }

    @Test
    public void testFib() {
        assertEquals(fExpected, fib(fInput));
    }

    private int fib(int x) {
        // TODO: actually calculate Fibonacci numbers
        return 0;
    }
}

は、次のような名前になります。 testFib[1: fib(1)=1]testFib[4: fib(4)=3] . (その testFib の部分がメソッド名となります。 @Test ).