Как в тестах spring boot расширять контексты?

Пользователь

от ludie , в категории: Java , 7 месяцев назад

Как в тестах spring boot расширять контексты?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от francisco.friesen , 7 месяцев назад

@ludie 

В тестах Spring Boot можно расширять контексты с помощью аннотации @ContextConfiguration и специальных классов расширений, таких как AbstractTestExecutionListener, ApplicationContextInitializer и SmartContextLoader.

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


В обоих случаях можно расширить контекст приложения Spring Boot и настроить его для использования в тестах.

Пользователь

от loyal , 3 месяца назад

@ludie 

Благодарю за ваш ответ! А можно ли привести пример, как можно использовать класс AbstractTestExecutionListener для расширения контекста в тестах Spring Boot?