Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Spring: spring, boot

Чем отличается @SpringBootTest от @ContextConfiguration?

Вопрос проверяет понимание способов загрузки Spring-контекста и выбора подходящего уровня интеграционных тестов.

Короткий ответ

@SpringBootTest поднимает почти полный контекст Spring Boot приложения. @ContextConfiguration загружает только указанные конфигурации. Первый используется для полноценных интеграционных тестов, второй — для более изолированных проверок. @SpringBootTest тяжелее и медленнее. Выбор зависит от целей теста.

Длинный ответ

Обе аннотации поднимают Spring-контекст, но делают это по-разному.

Определение

@SpringBootTest — аннотация для загрузки полного контекста Spring Boot приложения.
@ContextConfiguration — аннотация для загрузки явно заданных конфигураций.

@SpringBootTest

Используется для end-to-end или интеграционных тестов.

Особенности:

  1. Загружает ApplicationContext

  2. Поднимает auto-configuration

  3. Может стартовать web-сервер

  4. Медленный, но максимально близок к продакшену

Пример:

@SpringBootTest
class ApplicationIT {
}

@ContextConfiguration

Используется для изолированных тестов.

Особенности:

  1. Загружает только указанные конфигурации

  2. Нет auto-configuration

  3. Быстрее

  4. Больше контроля

Пример:

@ContextConfiguration(classes = TestConfig.class)
class ServiceTest {
}

Как выбрать

  1. Проверка всей системы → @SpringBootTest

  2. Проверка конкретного слоя → @ContextConfiguration

  3. Частые тесты → минимальный контекст

Вывод

@SpringBootTest даёт реалистичность, @ContextConfiguration — скорость и контроль. Хорошая тестовая стратегия использует оба подхода.

Уровень

  • Рейтинг:

    5

  • Сложность:

    6

Навыки

  • Spring

    Spring

Ключевые слова

#spring

#boot

Подпишись на Java Developer в телеграм