Комментарии 9
Замечу, что в JUnit 5 пока еще не нет эквивалентов для некоторых вещей из JUnit 4.
Например нет timeout для тестов (есть только возможность проверить, выполнился ли блок кода за указанное время) — это пока только в планах. Нет эквивалента @Rule Timeout
(возможность задать дэфолтный timeout для тестов) и текущее API для extensions не позволяет сделать его аналог (а в JUnit 4 — такое можно было сделать руками).
Так что если у вас в тестах используются timeout-ы или @Rule
хоть в каком-то виде, то есть вероятность, что смигрировать на JUnit 5 без потерь не получится.
Нет, совсем не то же самое. Допустим у вас блок кода по факту работает 5 минут, а на тесте вы выставили таймаут в 10 секунд.
В JUnit 4 вы через 10 секунд получите таймаут, а thread с тестом будет остановлен. Полное время выполнения теста — около 10 секунд.
В JUnit 5 тест отработает все 5 минут и уже после этого будет отмечен как неудачный. Полное время работы теста — 5 минут.
Еще хуже, если у вас тест иногда виснет (и как раз по этой причине вы выставили таймаут) — в JUnit 5 такой тест никогда не остановится.
10 интересных нововведений в JUnit 5