Похоже, вы хотите написать параметризованный тест (который выполняет одинаковые проверки для разных наборов данных).
Для этого есть класс Parameterized
.Этот пример показывает, как его можно использовать:
@RunWith(Parameterized.class)
public class FibonacciTest {
@Parameters
public static Collection<Object[]> data() {
return Arrays.asList(new Object[][] {{ 0, 0 }, { 1, 1 }, { 2, 1 }, { 3, 2 }, { 4, 3 }, { 5, 5 }, { 6, 8 } });
}
private final int input;
private final int expected;
public FibonacciTest(final int input, final int expected) {
this.input = input;
this. expected = expected;
}
@Test
public void test() {
assertEquals(expected, Fibonacci.compute(input));
}
}
Обратите внимание, что метод data()
возвращает данные, которые будут использоваться методом test()
.Этот метод может получать данные из любого места (например, файла данных, хранящегося в ваших источниках тестирования).
Кроме того, ничто не мешает иметь более одного @Test
метода в этом классе.Это обеспечивает простой способ выполнения разных тестов для одного и того же набора параметров.