【问题标题】:Functional bean definition Kotlin DSL - add initializer to single test class?功能 bean 定义 Kotlin DSL - 将初始化程序添加到单个测试类?
【发布时间】:2022-01-06 08:30:40
【问题描述】:

我有一个使用 Redis 的 Spring Boot 测试,我想只加载与 Redis 相关的 用于该测试的 bean。

我有一个定义 bean 的函数:

fun BeanDefinitionDsl.redisBeans() {
    bean {
    // ...
    }
}

我只想将那些 bean 添加到单个测试类中。

有没有办法在不向测试资源文件夹中的应用程序属性添加 bean 初始化程序的情况下这样做?

【问题讨论】:

    标签: spring spring-boot spring-webflux spring-boot-test spring-bean-dsl


    【解决方案1】:

    事实证明我可以进行正常的Junit测试(不是@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
    

    【讨论】:

      猜你喜欢
      • 2021-01-23
      • 2018-12-25
      • 2018-02-06
      • 2022-12-24
      • 1970-01-01
      • 1970-01-01
      • 2021-12-28
      • 1970-01-01
      • 2019-02-04
      相关资源
      最近更新 更多