Статьи

Избегайте перезагрузки контекста приложения при юнит-тестах

Узнайте больше о модульных тестах!

Просматривая мои статьи о DZone, можно легко заключить, что я фанат среды Spring Boot для разработки приложений RESTful. Этот же запрос может легко сделать вывод, что я фанат предоставления достаточного охвата модульных тестов для тех же самых API RESTful .

В недавнем проекте я понял, что использование @MockBean в моих модульных тестах сильно влияло на время выполнения этапа тестирования в нашем конвейере CI / CD .

В этой статье рассказывается об одном способе решения этой проблемы.

Вам также может понравиться: Модульное тестирование: хорошее, плохое и уродливое

@MockBean

Аннотация @MockBean добавит фиктивные объекты в контекст приложения Spring. В результате, смоделированный элемент заменит любой существующий бин того же типа в контексте приложения. Когда это происходит, Spring Boot понимает, что контекст приложения должен быть перезагружен как часть инициализации теста.

Хотя это может показаться не таким уж большим делом, особенно когда это обычно 10-15-секундный процесс, это может повлиять на время развертывания — когда нужно покрыть большую кодовую базу.

Простой пример

Рассмотрим этот простой пример класса обслуживания.


Джава