TGViewer
Заметки о QA Заметки о QA @notes_about_qa · 3.61K subscribers
Post #277 3.1K
Чем могут быть полезны Extensions в JUnit5

Extensions - список интерфейсов, которые появились в JUnit5. Они расширяют работу с жизненным циклом в автотестах.

Чем поможет
Сделает работу с автотестами гибкими.
Например, раньше мы могли работать в рамках автотеста только с Before и After. Благодаря extensions вы можете значительно повлиять на работу автотестов, сравните хотя бы количество этапов в жизненном цикле (картинка по ЖЦ автотеста в junit5).
Теперь легко повесить общую аннотацию @Something на класс автотестов, внутри которой будет реализация полноценной настройки окружения. Это позволит не дописывать в каждом новом классе велосипед, настраивающий окружение.

Примеры использования интерфейсов
- ExcisionCondition: может создать условие для запуска теста. Например, вы хотите запускать тесты только на ОС = Windows. Мы создаем реализацию класса и особенности запуска, добавляем его к классу и вуаля, ваш тест имеет особенности запуска.
- ParameterResolver: позволяет предоставить параметры для автотестов. Например, у вас специфический тип в параметрах, и вам нужно гибко его передавать, а стандартной работы JUnit5 вам не хватает.
- TestWatcher позволяет сделать что-то при падении или запуске теста. Он следит за тестами и ходом их выполнения.
(полная документация всех интерфейсов в extension)
В рамках extension мне очень нравится такой класс как ExecutionContext, который позволяет получить доступ к данным о тесте, его местонахождении, параметрам запускам и всем-всем, связанным с тестом.

Что почитать/посмотреть
Я познакомилась с Extensions благодаря выступлениям Дмитрия Тучс, которые рекомендую и вам:
- Дополнительная открытая лекция с продвинутого курса по Java, где я впервые услышала про extensions
- JUnit, дай пять! Переносим код в JUnit 5 Extensions
- Доклад The art of JUnit extensions с Heisenbug и The art of JUnit extensions 2

Прочие полезные материалы:
Статья про практическое применение Extensions (kotlin)
Полное руководство по расширениям JUnit 5 (java)
Практическое применение Extensions с канала Oleh Pendrak
Руководство по расширениям JUnit 5

#junit #автоматизация
  • ❤ 9
  • 🔥 8
More from @notes_about_qa
  1. Dec 30, 2025Новогодние советы для тестировщиков [3] Прошел ещё год! У меня ощущение, что я будто бы со…
  2. Sep 18, 2025Полезные ресурсы для изучения алгоритмов🧩 Нужно ли знать алгоритмы для автоматизации тест…
  3. Apr 8, 2025🐛 Плавающие баги и как их искать Хочу попробовать новый формат: выжимки из докладов в вид…
  4. Mar 31, 2025🌸Рекомендация авторских каналов про тестирование🌸 Год назад (даже больше!) я рекомендова…
  5. Mar 25, 2025Но это не все! Для еще большего удобства я составила таблицу (тык сюда, чтобы перейти в go…
  6. Mar 25, 2025document post
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →