Теория JUnit для всех тестов - нужен только метод параметризованной настройки - PullRequest
1 голос
/ 08 марта 2012

У меня есть несколько тестов в одном классе, все они зависят от переменных, установленных в методе установки.Поэтому было бы хорошо, если бы я мог запускать все тесты несколько раз с разными глобальными переменными.

Я знаю, что вы можете использовать Theory для одного теста, но я хотел бы использовать его для всех тестов.Мой первый подход привел к ошибке, что метод установки не может иметь никаких аргументов.

Я там для обходного пути для этого?Я не хочу аннотировать каждый тест в классе и добавлять логику конфигурации, если это можно сделать с помощью метода центральной установки.

1 Ответ

2 голосов
/ 08 марта 2012

Вы смотрели на Параметризованный ?

@RunWith(Parameterized.class)
public class FibonacciTest {
    @Parameters
    public static Iterable<Object[]> data() {
        return Arrays.asList(new Object[][] { { 0, 0 }, { 1, 1 }, { 2, 1 },
                 { 3, 2 }, { 4, 3 }, { 5, 5 }, { 6, 8 } });
    }

    private int fInput;
    private int fExpected;

    public FibonacciTest(int input, int expected) {
        fInput= input;
        fExpected= expected;
    }

    @Test
    public void test() {
        assertEquals(fExpected, Fibonacci.compute(fInput));
    }
}

Каждый экземпляр FibonacciTest будет создан с использованием конструктора с двумя аргументами и значений данных в методе @Parameters.

...