【发布时间】:2018-12-25 18:03:01
【问题描述】:
我有一个简单的应用程序,其中有几个用 kotlin beans dsl 声明的 bean:
@SpringBootApplication
class App
val beans = beans {
bean<A>()
}
fun main(args: Array<String>) {
runApplication<MatchmakerApp>(*args) {
addInitializers(beans)
}
}
@RestController
class AppController(val a: A) {
// some code
}
class A
我有一个集成测试:
@RunWith(SpringRunner::class)
@SpringBootTest
class AppControllerTest {
@Test
fun dummyTest() {
assert(true)
}
}
我正在启动这个测试
UnsatisfiedDependencyException: Error creating bean with name appController
Caused by: NoSuchBeanDefinitionException: No qualifying bean of type 'A' available:`
似乎在 SpringBootTest 上下文创建期间没有调用 bean 初始化程序。
我们需要在 SpringBootTest 中添加什么 kotlin bean dsl 初始化器?
@ContextConfiguration(initializers = ...) 的一般方式在这里不起作用,因为它会查找类。
【问题讨论】:
标签: spring-boot kotlin spring-boot-test