1. Модульность JUnit 5
Выпуск JUnit 5 означает, что пришло время для новых подходов. Это произошло далеко не сразу; потребовалось время на осмысление недостатков JUnit 4, которые наглядно показали, какие улучшения необходимы. Зная эти проблемы, архитекторы решили пойти по пути уменьшения размера и внедрения модульности.Для дальнейшего развития фреймворка JUnit был необходим новый — модульный — подход. Такая архитектура должна была обеспечить взаимодействие JUnit с различными программными клиентами, разными инструментами и средами IDE. Для логического отделения потребовалось следующее:
-
интерфейс API для написания тестов, предназначенный главным образом для разработчиков;
-
механизм для обнаружения и выполнения тестов;
-
API для обеспечения удобного взаимодействия со средами IDE и инструментами, а также для запуска соответствующих тестов.
В результате была предложена архитектура JUnit 5, состоящая из трех модулей (Рис. 1):
- Модуль JUnit Platform служит основой для запуска фреймворков тестирования на JVM (виртаульной машине Java), а также предоставляет API для запуска тестов из консоли, IDE или встроенных инструментов.
- Модуль JUnit Jupiter представляет собой сочетание новой модели программирования и модели расширения для написания тестов и расширений в JUnit 5. Свое имя он получил по названию пятой самой большой планеты в нашей солнечной системе.
- Модуль JUnit Vintage — это среда тестирования для запуска тестов на основе JUnit 3 и JUnit 4 на платформе, обеспечивающей необходимую обратную совместимость.
Рисунок 1. Модульная архитектура JUnit 5
2. Платформа JUnit 5
Продолжая рассмотрение концепции модульности, необходимо кратко остановиться на артефактах, содержащихся в модуле JUnit 5 Platform (Рис. 2):- junit-platform-commons — внутренняя общая библиотека JUnit, предназначенная исключительно для использования с самим фреймворком JUnit. Использование сторонними клиентами не поддерживается.
-
junit-platform-console обеспечивает поддержку для обнаружения и выполнения тестов в JUnit Platform из консоли.
-
junit-platform-console-standalone — исполняемый архив JAR со всеми включенными в него зависимостями. Он используется Console Launcher, Java-приложением командной строки, которое позволяет запускать JUnit Platform из консоли. Например, он может использоваться для запуска тестов JUnit Vintage и JUnit Jupiter, а также для вывода результатов выполнения тестов на консоль.
-
junit-platform-engine — общедоступный интерфейс API для тестовых сред.
-
junit-platform-launcher — общедоступный интерфейс API для настройки и запуска планов тестирования, который обычно используется IDEs и встроенными инструментами.
-
junit-platform-runner — средство запуска для выполнения тестов и наборов тестов на JUnit Platform в среде JUnit 4.
-
junit-platform-suite-api содержит аннотации для настройки наборов тестов на JUnit Platform.
-
junit-platform-surefire-provider обеспечивает поддержку для обнаружения и выполнения тестов на JUnit Platform с использованием Maven Surefire.junit-platform-gradle-plugin, который обеспечивает поддержку для обнаружения и выполнения тестов на JUnit Platform с использованием Gradle.
Продолжение