Параметризированные тесты в JUnit 5

Эти JUnit-ы сменяют друг друга как очумелые. Я как-то писал статью про то, как можно подружить Mockito, junitdataprovider и JUnit 4. В пятой версии JUnit параметризованные тесты уже выглядят гораздо лучше, чем раньше, поэтому смысла подключать junitdataprovider больше нет.

Напишем небольшой пример параметризованного теста. Для начала добавим необходимые зависимости:

Зависимость junit-jupiter-engine подключает сам JUnit, а junit-jupiter-params нужна для возможности написания параметризованных тестов.

Класс, который будем тестировать:

При написании тестов нам достаточно использовать аннотацию @ParameterizedTest, чтобы указать, что это тест с параметрами. Затем мы можем использовать аннотации вида @ValueSource, @EmptySource, @NullSource… Но мы будем использовать аннотацию @MethodSource, с помощью которой получим код практически идентичный тому, что был в примере с junitdataprovider.

В методе method1DataProvider() мы описываем аргументы для нашего теста. В метод они передадутся в том же порядке, в котором перечислены. Сначала в expected передастся 10, в param1 передастся 7, в param2 передастся 3. Затем в expected передастся 15, в param1 передастся 10, в param2 передастся 5.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *