1 сентября 2020 2335
Это четвертая часть нашей серии статей об архитектуре JUnit 5. Продолжаем рассказывать о правилах и модели расширений, уделяя особое внимание новому подходу в JUnit 5.
Предыдущая часть

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

Listing 3. The JUnit5ExceptionTester class

В примере с JUnit 5 мы делаем следующее:

  1. Инициализируем экземпляр класса Calculator, функциональность которого мы тестируем (1’).

  2. Подтверждаем, что выполнение calculator.sqrt(-1) выдает исключение IllegalArgumentException (2’).

  3. Подтверждаем, что выполнение calculator.divide(1, 0) выдает исключение ArithmeticException (3’).

Отмечаем очевидную разницу в ясности кода и длине кода между JUnit 4 и JUnit 5. Эффективный код тестирования в JUnit 5 имеет 13 строк, а в JUnit 4 — 20 строк. И нет необходимости инициализировать и использовать дополнительные правила. Каждый метод тестирования в JUnit 5 содержит одну строку.

Еще одно правило, которое мы хотим переместить, — это TemporaryFolder. Правило TemporaryFolder позволяет создавать файлы и папки, которые должны быть удалены после завершения тестового метода (независимо от того, выполнен он или нет). Это правило JUnit 4 заменяется в JUnit 5 на аннотацию @TempDir. В Примере 4 показан подход, используемый в JUnit 4.

Listing 4. The JUnit4RuleTester class
В этом примере мы делаем следующее:
  1. Декларируем поле TemporaryFolder с аннотацией @Rule и инициализируем его. Аннотацию @Rule необходимо применить либо к общедоступному полю, либо к общедоступному методу (1).
  2. Используем поле TemporaryFolder для создания папки и файла (2). Они находятся в папке Temp профиля пользователя в операционной системе.

  3. Проверяем наличие временной папки и временного файла (3).

Теперь рассмотрим новый подход в JUnit 5 (Пример 5).

Listing 5. The JUnit5TempDirTester class
В примере с JUnit 5 выше мы делаем следующее:

  1. Декларируем поле с аннотацией @TempDir (1’).

  2. Перед выполнением теста проверяем создание временной директории (2’).

  3. Создаем файл в этой директории и проверяем его наличие (3’).

Преимущество подхода с расширениями в JUnit 5 заключается в том, что нет необходимости самим создавать папку с помощью конструктора — папка создается автоматически, когда мы добавляем к полю аннотацию @TempDir.

Посмотрим теперь, как можно заменить настраиваемое правило. Собственные правила полезны, когда для некоторых типов тестов требуются одинаковые дополнительные действия до и после их выполнения.

В JUnit 4 нам было нужно выполнить такие дополнительные действия до и после выполнения теста. Следовательно, мы можем создать собственные классы, которые реализуют интерфейс TestRule. Для этого необходимо переопределить метод apply(Statement, Description), который возвращает экземпляр Statement. Такой объект представляет тесты в среде JUnit, а Statement#evaluate() выполняет их. Объект Description описывает отдельный тест. Его можно использовать для чтения информации о тесте через отражение.

Listing 6. The CustomRule class

Способ определения собственных правил показан на Примере 6, где мы делаем следующее:

  1. Декларируем класс CustomRule, который реализует интерфейс TestRule (1).

  2. Сохраняем ссылки на поле Statement и поле Description (2) и используем их в методе apply, который возвращает CustomStatement (3).


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

Продолжение

Последние статьи в блоге

Обучение сотрудников крупной компании работе с ClickHouse

Рассказываем, как мы организовали обучение команды работе с этой новой для заказчика технологией и каких результатов достигли.

19 марта 2025

Платформа сертификации IBS получила аккредитацию АПКИТ

Ассоциация предприятий компьютерных и информационных технологий (АПКИТ) приняла новый регламент сертификации ИТ-специалистов.

Новости
10 марта 2025

Специальные акции на учебные программы

У нас отличная новость для всех, кто стремится развивать свои навыки в мире ИТ.

06 марта 2025

Как остановить спам-атаку

Современный цифровой мир не обходится без рисков, и спам-атаки стали одной из наиболее распространенных угроз. Независимо от того, поступают ли они на ваш телефон, электронную почту или мессенджеры, массовые потоки таких сообщений могут быть крайне раздражающими и даже опасными. Спамеры используют эти атаки не только для рекламы, но и для мошенничества, фишинга или распространения вредоносных ссылок.

06 марта 2025

Учебный центр IBS подписал партнерское соглашение с ООО «РусБИТех-Астра», разработчиком российской операционной системы Astra Linux.

Теперь мы можем проводить авторизованное обучение по работе с Astra Linux для специалистов в области информационной безопасности.

17 февраля 2025

Двойная выгода: покупай один курс — получай второй за 50% стоимости!

Воспользуйтесь возможностью изучить более глубокие аспекты одной области — например, при покупке курса по Java, архитектуре ПО, управлению проектами, системному и бизнес-анализу, тестированию ПО и Big Data вы можете получить второй курс этой же тематики за полцены! Не упустите шанс развить свои навыки и поднять свою карьеру на новый уровень. 

29 января 2025

Сертификация преподавателя Java-разработки для крупного провайдера ИТ-обучения

Подтверждение квалификации значимо не только для ИТ-специалистов, работающих в сфере коммерческой разработки, но и для преподавателей, обучающих будущих экспертов в этой области. Делимся историей одного из преподавателей крупного провайдера ИТ-курсов, который успешно прошел Java-сертификацию.

Новости
21 января 2025

Системный аналитик 100 lvl — дорожная карта развития

Все, что нужно знать для роста в профессии: какие блоки знаний проседают у системных аналитиков больше всего, на какие компетенции важно обратить внимание, чтобы двигать карьеру дальше, и как подтвердить соответствие своего уровня единому стандарту качества.

23 декабря 2024

Платформа сертификации IBS признана лучшим digital-решением для корпоративного обучения

Центр сертификации IBS стал обладателем Гран-при премии «Смарт пирамида» — одной из самых престижных российских премий за достижения в области обучения и развития человеческого капитала.

20 декабря 2024

Учебный центр IBS получил сертификат ГОСТ Р ИСО 9001-2015

В октябре 2024 года Учебный центр IBS получил сертификат соответствия ГОСТ Р ИСО 9001-2015. Это важное достижение подтверждает, что мы придерживаемся высоких стандартов качества и результативно управляем образовательными процессами организации.

19 декабря 2024

9 курсов со скидкой до 50%

Друзья, в январе стартует 9 курсов, обучение на которых можно купить со скидкой до 50%*! 

15 декабря 2024

8 заблуждений про тестирование

Тестирование программного обеспечения окружено множеством заблуждений. Эти стереотипы нередко приводят к недопониманию его реальной роли и важности для успешного создания продуктов. Рассмотрим восемь самых распространенных мифов о тестировании и объясним, почему они не соответствуют действительности.

15 декабря 2024

Путь к Fullstack-тестировщику: что нужно знать о ручном и автоматизированном тестировании?

Тестирование программного обеспечения — одна из самых востребованных областей в IT. И часто новички и даже опытные специалисты, желающие строить свою карьеру в этом направлении, часто сталкиваются с вопросом: какое тестирование выбрать — ручное, автоматизированное или Fullstack? У каждого из этих направлений свои особенности, преимущества и требования к знаниям. В этой статье рассмотрим каждое из направлений, их плюсы и минусы, области применения и навыки, необходимые для успеха.

15 декабря 2024

Совет по развитию сертификации ИТ-специалистов при АПКИТ аккредитовал «Платформу сертификации IBS»

Директор департамента обучения и развития IBS Владимир Гернер участвовал в заседании Совета по сертификации ИТ-специалистов при АПКИТ.

Новости Жизнь компании
08 октября 2024

Java-сертификация: IBS в сравнении с Oracle

Игорь Судакевич рассказывает, почему сертификаты могут стать важным инструментом для достижения карьерных целей.

Новости
04 октября 2024

Исследование IBS: число новых ИТ-решений в реестре ПО выросло в 2023 году более чем на треть

Анализируем ситуацию на рынке российского ПО.

Жизнь компании
01 октября 2024

6 суперспособностей Fullstack-тестировщиков, которые напоминают навыки животных

Читайте о скиллах, которые делают тестировщиков востребованными на рынке труда.

27 сентября 2024

5 мифов о системных аналитиках

Вместе с Екатериной Тихомировой, специалистом по системному и бизнес-анализу, разбираемся, чем занимаются системные аналитики.

20 сентября 2024

Методология 12 факторов: как успешно разрабатывать облачные приложения

Андрей Бирюков рассказывает о методологии, которая помогает разрабатывать качественные, устойчивые и эффективные веб-приложения.

12 сентября 2024

Баги, которые стали фичами

Многие вещи, которые мы используем ежедневно, были случайно открыты. В честь дня тестировщика рассказываем про 5 багов, которые стали фичами.

09 сентября 2024

Не нашли, что искали? — Просто напишите, и мы поможем

Корпоративное обучение Оценка персонала Сертификация О нас Стань тренером Блог
Пользователь только что записался на курс ""
Спасибо!
Форма отправлена успешно.