Параметризированные тесты в JUnit. Использование @Parameterized.Parameters
Запуск параметризированных тестов с помощью аннотаций @Parameterized.Parameters и @RunWith.
Основной код описан в JUnit — введение в юнит-тесты. Пример JUnit Hello world.
Ниже описан парамeтризированный тест в JUnit.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | package ru.javastudy.junit; import java.util.Arrays; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import static org.junit.Assert.assertEquals; /**  * Created for JavaStudy.ru  */ @RunWith(Parameterized.class) public class ParameterizeTest {     private int valueA;     private int valueB;     private int expected;     public ParameterizeTest(int valueA, int valueB, int expected) {         this.valueA = valueA;         this.valueB = valueB;         this.expected = expected;     }     @Parameterized.Parameters(name = "{index}:sumOf({0}+{1})={2}")     public static Iterable<Object[]> dataForTest() {         return Arrays.asList(new Object[][]{                 {1, 1, 2},                 {2, 6, 8},                 {18, 2, 20},                 {13, 15, 28},                 {1, 5, 6}         });     }     @Test     public void paramTest() {         assertEquals(expected, new Calculator().getSum(valueA,valueB));     } } | 
В начале мы задаем три поля класса: два значения и ожидаемый результат. Далее необходимо задать конструктор, в котором будут инициализированы эти переменные.
С помощью записи @Parameterized.Parameters(name = «{index}:sumOf({0}+{1})={2}») мы задаем параметры для нашего метода, где {index} — индекс теста (1,2,3,4 и т.д.), {0}, {1} и {2} это valueA, valueB и expected соответственно. Запись sumOf — поясняющий текст к происходящему. Метод Calculator.getSum() описан в начальной статье — он просто складывает два числа.
После запуска мы получим результат прохождения тестов для каждого набора значений из массива.



