Kotlin Spring Boot单元测试-添加@TestExecutionListeners不会注入依赖项

时间:2019-09-06 07:59:39

标签: spring-boot kotlin dependency-injection junit4

我正在尝试使用Flyway Test Extensions库,其说明之一是添加:

@TestExecutionListeners({DependencyInjectionTestExecutionListener.class, 
                         FlywayTestExecutionListener.class })

所以在科特林,我有一些类似的东西:

 @RunWith(SpringRunner::class)
 @TestExecutionListeners(DependencyInjectionTestExecutionListener::class, 
                         FlywayTestExecutionListener::class )
 class MyControllerTest {
     @Autowired
     lateinit var dataSource : DataSource
 }

但是由于某些原因,当我尝试在该类中运行测试时,出现一条错误消息,指出lateinit属性尚未初始化。

要使此功能正常工作,我需要做一些特别的事情吗?

1 个答案:

答案 0 :(得分:0)

好吧,我终于找到了另一篇有助于解决该问题的帖子:How to persist enums as ordinals with Spring Boot and Cassandra?

我需要的注释是:

@TestExecutionListeners(
    listeners = [FlywayTestExecutionListener::class],
    mergeMode = TestExecutionListeners.MergeMode.MERGE_WITH_DEFAULTS
)