Архитектура JUnit 5. Часть 2

06.08.2020 251
Начало

Это вторая часть нашей серии статей об архитектуре JUnit 5. Здесь мы поговорим о модулях JUnit 5 Jupiter и JUnit 5 Vintage, а также о других вещах.

3. JUnit 5 Jupiter

Модуль JUnit Jupiter представляет собой сочетание новой модели программирования (аннотации, классы, методы) и модели расширения для написания тестов и расширений в JUnit 5. Подпроект Jupiter предоставляет TestEngine для выполнения на этой платформе тестов на основе Jupiter. В отличие от прежних средств запуска и точек расширения правил в JUnit 4, модель расширений в JUnit Jupiter основана на единой концепции — Extension API.

В JUnit Jupiter имеются следующие артефакты:

  • junit-jupiter-api — JUnit Jupiter API для написания тестов и расширений;

  • junit-jupiter-engine — реализация тестовой среды JUnit Jupiter, которая необходима только во время выполнения;

  • junit-jupiter-params обеспечивает поддержку для параметризованных тестов в JUnit Jupiter;

  • junit-jupiter-migrationsupport обеспечивает поддержку миграции с JUnit 4 на JUnit Jupiter и требуется только для запуска выбранных правил JUnit 4.


4. JUnit 5 Vintage

Модуль JUnit Vintage обеспечивает TestEngine для запуска тестов на основе JUnit 3 и JUnit 4 на платформе. JUnit 5 Vintage содержит только junit-vintage-engine, реализацию среды для выполнения тестов, написанных в JUnit 3 или 4. Для этого также потребуются архивы JUnit 3 или 4 JAR.

Это полезная возможность для взаимодействия со старыми тестами через JUnit 5. Вполне вероятно, что вам понадобится работать с проектами в JUnit 5 с поддержкой многих старых тестов. В такой ситуации лучшим решением будет JUnit 5 Vintage!

5. Общая картина архитектуры JUnit 5

Чтобы свести все воедино и показать, как работает вся архитектура, отметим, что JUnit Platform предоставляет средства для выполнения самых разных тестов: JUnit 5, старых тестов JUnit 3 и 4, а также сторонних тестов (Рис. 2).

Рис. 2. Общая картина архитектуры JUnit 5
Рис. 2. Общая картина архитектуры JUnit 5.

Более подробно (Рис. 3):

  • Тестовые APIs обеспечивают средства для различных тестовых сред: junit-jupiter-api для тестов JUnit 5; junit-4.12 для старых тестов; настраиваемые среды для сторонних тестов.

  • Эти тестовые среды создаются за счет расширения общедоступного интерфейса junit-platform-engine API, который является частью JUnit 5 Platform.

  • Общедоступный интерфейс junit-platform-launcher API обеспечивает средства для обнаружения тестов в JUnit 5 Platform, для встроенных инструментальных средств, таких как Maven или Gradle, или для IDEs.

Рис. 3. Детальная картина архитектуры JUnit 5
Рис. 3. Детальная картина архитектуры JUnit 5.

Помимо модульной архитектуры, JUnit 5 предоставляет механизм расширений.

Следует подчеркнуть, что архитектура системы в значительной степени определяет ее возможности и поведение. Понимание архитектуры JUnit 4 и JUnit 5 поможет вам лучше использовать их возможности на практике, писать более эффективные тесты и анализировать альтернативные возможности реализации. Они также помогут вам быстрее приобрести необходимые навыки программирования для написания модульных тестов.

Автор Catalin Tudose, Java and Web Technologies Expert

Продолжение


Расскажи друзьям:

 
Оценка и обучение ИТ-специалистов по ключевым направлениям разработки программного обеспечения. Курсы от экспертов-практиков по языкам программирования, системному и бизнес-анализу, управлению проектами, тестированию ПО, архитектуре ПО. Luxoft Training – единственный учебный центр в России, авторизованный IIBA. Действует скидка 10% на обучение физических лиц.
   Подпишись на ежемесячный DigestLT
Успешная форма подписки.
Пользователь только что записался на курс ""
Спасибо!
Форма отправлена успешно.