#spring #spring-boot #spring-webflux #spring-boot-test #spring-bean-dsl
#весна #пружинный ботинок #пружинный вебфлюкс #тест на пружинную загрузку #спринг-бобы-dsl
Вопрос:
У меня есть тест весенней загрузки, в котором используется Redis, и я хотел бы загрузить только компоненты, связанные с Redis, для этого теста.
У меня есть функция, которая определяет бобы:
fun BeanDefinitionDsl.redisBeans() { bean { // ... } }
И я хотел бы, чтобы в один тестовый класс были добавлены только эти компоненты.
Есть ли способ сделать это без добавления инициализатора компонента в свойства приложения в папке тестовых ресурсов?
Ответ №1:
Оказывается, я могу провести обычный тест Junit (не a @SpringBootTest
) и создать контекст с помощью инициализаторов, таких как:
SpringApplicationBuilder() .bannerMode(Mode.OFF) .initializers(MyCustomInitializer()) .sources(DummyConfig::class.java) .properties( mapOf( "spring.autoconfigure.exclude" to "..." ) ) .web(WebApplicationType.NONE) .build() .run() .getBean(MyBeanThatIWantToTest::class.java) // ... @EnableAutoConfiguration @Configuration class DummyConfig