Выбор ответа Junior Тестирование: JUnit 5 и Mockito обновлено
Параметризованный тест
Вопрос
Как в JUnit 5 прогнать один тест на наборе входов и ожидаемых значений?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: @ParameterizedTest с @CsvSource. @ParameterizedTest запускает тест на каждый набор аргументов и показывает каждый как отдельный результат, @CsvSource удобно задаёт пары вход-ожидание.
Варианты ответа
- Цикл
forпо входам внутри@Test @RepeatedTest(5)с разными входами@ParameterizedTestс@CsvSourceправильный ответ@TestFactoryс@ValueSource
Разбор
@ParameterizedTest запускает тест на каждый набор аргументов и показывает каждый как отдельный результат, @CsvSource удобно задаёт пары вход-ожидание. Цикл внутри одного теста остановится на первом провале и не покажет, какие ещё случаи падают. @RepeatedTest повторяет без разных данных. @TestFactory для динамических тестов, @ValueSource с ним не используется.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.