Как избежать поднятия нескольких ApplicationContext в тестах?

Как избежать поднятия нескольких ApplicationContext в тестах?

В больших Spring-проектах тесты могут запускаться медленно из-за того, что Spring создаёт несколько ApplicationContext.

Почему так происходит? Контекст кэшируется, но Spring создаёт новый, если конфигурация теста отличается: другие @MockBean, @TestConfiguration, профили, свойства через @TestPropertySource и т.д.

Например, два теста с разными @MockBean могут получить два разных контекста.

Как уменьшить количество контекстов:
· Используйте одинаковую конфигурацию тестов.
· Не добавляйте @DirtiesContext без необходимости — он заставляет Spring пересоздать контекст.
· Старайтесь не менять @ActiveProfiles и тестовые properties между классами.
· Общие @MockBean выносите в базовый класс.
· Не создавайте лишние @TestConfiguration.

Главная идея: чем больше тестов используют одинаковую конфигурацию, тем больше Spring переиспользует закэшированный ApplicationContext — и тем быстрее идут тесты.
Просмотры: 46
Открыть в MAX Сообщить о неточности

Репосты публикации

Публикация канала

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти