Parametryzacja testów
Powtarzalne testy
import org.junit.jupiter.api.RepeatedTest;
import org.junit.jupiter.api.RepetitionInfo;
import static org.junit.jupiter.api.Assertions.assertTrue;
public class RepeatedTestCase {
    @RepeatedTest(5)
    public void repeatedTest(RepetitionInfo repetitionInfo) {
        int current = repetitionInfo.getCurrentRepetition();
        int total = repetitionInfo.getTotalRepetitions();
        System.out.println("Checking for the #" + current + " time out of " + total + " trials...");
        assertTrue(true);
    }
}
Źródła danych
Dzięki anotacji @ParameterizedTest dostępne są następujące źródła danych:
- @ValueSource
- @CSVFileSource
- @MethodSource
- @ArgumentsSource
- @EnumSource
Aby anotacja @ParameterizedTest była dostepna w classpath należy dodać nową zaleźność do projektu:
<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-params</artifactId>
    <version>${junit.jupiter.version}</version>
    <scope>test</scope>
</dependency>
Przykłady wykorzystania źródeł danych:
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvFileSource;
import org.junit.jupiter.params.provider.MethodSource;
import org.junit.jupiter.params.provider.ValueSource;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
public class DataDrivenTest {
    @ParameterizedTest
    @ValueSource(ints = {1, 2, 3, 4, 5})
    public void valueSourceTest(int argument) {
        assertTrue(argument > 0);
    }
    @ParameterizedTest
    @MethodSource(value = {"generatePositiveNumbers"})
    public void methodSourceTest(int argument) {
        assertTrue(argument > 0);
    }
    private static int[] generatePositiveNumbers() {
        return new int[]{1, 2, 3, 4, 5};
    }
    @ParameterizedTest
    @CsvFileSource(resources = {"/math_pow_test_data.csv"}, delimiter = ';')
    public void csvFileSourceTest(int number, int expectedResult) {
        assertEquals(expectedResult, Math.pow(number, 2));
    }
}
Zadanie 1
Przepisać testy do klasy com.infoshareacademy.jjdd3.FahrenheitConverter tak by korzystały z pliku CSV.
Zadanie 2
Przepisać testy do klasy Calculator tak by korzystały z plików CSV (osobny dla każdej z metod).