@ludie
В тестах Spring Boot можно расширять контексты с помощью аннотации @ContextConfiguration
и специальных классов расширений, таких как AbstractTestExecutionListener
, ApplicationContextInitializer
и SmartContextLoader
.
- Расширение контекста с использованием аннотации @ContextConfiguration:
Создайте отдельный класс, расширяющий основной контекст приложения.
Аннотируйте этот класс аннотацией @ContextConfiguration и укажите основной контекст приложения в качестве значения атрибута classes.
Затем используйте этот расширенный контекст в тестовом классе с помощью аннотации @Autowired или @Inject.
Пример:
@ContextConfiguration(classes = {MainApplicationContext.class, ExtendedApplicationContext.class})
public class MyTest {
@Autowired
private MyBean myBean;
}
- Расширение контекста с помощью классов расширений:
Создайте класс, расширяющий один из классов-расширений Spring Testing, например, AbstractTestExecutionListener, ApplicationContextInitializer или SmartContextLoader.
Переопределите соответствующие методы для настройки расширенного контекста.
Затем аннотируйте свой тестовый класс с использованием аннотации @TestExecutionListeners и укажите созданный класс расширения.
Пример:
@TestExecutionListeners(MyTestExecutionListener.class)
public class MyTest {
@Autowired
private MyBean myBean;
}
В обоих случаях можно расширить контекст приложения Spring Boot и настроить его для использования в тестах.