0

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

我有一个定义 bean 的函数:

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

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

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

4

1 回答 1

0

事实证明,我可以进行正常的 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
于 2021-12-01T11:27:52.600 回答