🪲
JUnit 4 и JUnit 5 – как избежать ошибок?Довольно распространённой ошибкой при тестировании приложений на Java, приводящей к неожиданным результатам тестов, является совместное использование JUnit 4 и JUnit 5 в одном и том же тестовом классе.
Не смотря на то, что
первая версия JUnit 5 вышла в 2017 году, до сих пор существуют проекты, которые используют его предшественника — и это вполне нормально.
JUnit 5 поддерживает запуск тестов JUnit 4 вместе с тестами JUnit 5 благодаря
JUnit Vintage Engine. Благодаря этой фиче мы можем постепенно мигрировать с JUnit 4 на JUnit 5.
Именно JUnit Vintage Engine делает возможным выполнение тестов, написанных на JUnit 4, в среде JUnit 5. Однако использование аннотаций и API JUnit 4 и JUnit 5 (точнее, JUnit Jupiter) одновременно в одном тестовом классе не работает. Нам нужно выбирать что-то одно.
Мы можем использовать как тесты JUnit 4, так и тесты JUnit 5 в одном проекте, но каждый отдельный тестовый класс должен использовать либо JUnit 4, либо JUnit 5.Например, тест
MyOrderTest может быть написан на JUnit 4, а
MyPricingServiceTest — на JUnit 5, и это абсолютно нормально.
✍️ Хорошая статья про миграцию с JUnit 4 на JUnit 5 в блоге Oracle (en): https://blogs.oracle.com/javamagazine/post/migrating-from-junit-4-to-junit-5-important-differences-and-benefits