JUnit5 の @CsvSource を使って、テストで使用する値を CSV で設定する方法を書いていきます。
バージョン
動作確認で使用した製品のバージョンは以下の通りです。
1. 指定方法
@CsvSource の値に CSV を指定します。値を配列にすると、メソッドが複数回呼び出されます。
package org.example.csv; import static org.junit.jupiter.api.Assertions.assertEquals; import org.example.Calc; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.CsvSource; class CalcTest { private final Calc calc = new Calc(); @ParameterizedTest @CsvSource({ // CSVの内容が引数に設定されます。 "1, 2, 3", // x=1, y=2, expected=3 "10, 20, 30" // x=10, y=20, expected=30 }) void testAdd(int x, int y, int expected) { // 実行 int result = calc.add(x, y); // 検証 assertEquals(expected, result); } }
@CsvSource を使う場合は、@ParameterizedTest を付与します。パラメーター化されたテストだと宣言する必要があります。
2. テスト対象クラス
動作確認で使用したテスト対象のクラスは以下の通りです。
package org.example; public class Calc { public int add(int x, int y) { return x + y; } }