TL;DR

1 つのテスト関数に複数のパラメータを渡して、入力ごとにテストを行う手法。

仕組み

JUnit のユーザガイドによると、パラメータ化テストは、1 つのテストメソッドを異なる引数で何度も実行する仕組みである。JUnit では @Test の代わりに @ParameterizedTest を付け、各実行に引数を渡すソースを少なくとも 1 つ宣言する。ソースには、値の配列を渡す @ValueSource、CSV 形式で書く @CsvSource、引数を返すファクトリメソッドを指定する @MethodSource などがある。

例

JUnit で、回文かどうかを 3 つの文字列で確かめる例。値ごとに別の実行として扱われる。

@ParameterizedTest
@ValueSource(strings = { "racecar", "radar", "able was I ere I saw elba" })
void palindromes(String candidate) {
    assertTrue(StringUtils.isPalindrome(candidate));
}

多くの言語のテスティングフレームワークが対応している。

関連

出典