Kotlin Spring Boot 单元测试 - 添加 @TestExecutionListeners 不会注入依赖项
Posted
技术标签:
【中文标题】Kotlin Spring Boot 单元测试 - 添加 @TestExecutionListeners 不会注入依赖项【英文标题】:Kotlin Spring Boot Unit Test - adding in @TestExecutionListeners doesn't inject dependencies 【发布时间】:2020-01-09 02:12:18 【问题描述】:我正在尝试使用 Flyway 测试扩展库,它的说明之一是添加:
@TestExecutionListeners(DependencyInjectionTestExecutionListener.class,
FlywayTestExecutionListener.class )
所以在 Kotlin 中我有一些类似的东西:
@RunWith(SpringRunner::class)
@TestExecutionListeners(DependencyInjectionTestExecutionListener::class,
FlywayTestExecutionListener::class )
class MyControllerTest
@Autowired
lateinit var dataSource : DataSource
但由于某种原因,当我尝试在该类中运行测试时,我收到一条错误消息,指出 lateinit 属性尚未初始化。
我需要做什么/做一些特别的事情才能让它发挥作用吗?
【问题讨论】:
【参考方案1】:好吧,我终于找到了另外 1 个帮助我解决问题的帖子:How to persist enums as ordinals with Spring Boot and Cassandra?
我需要的注释是:
@TestExecutionListeners(
listeners = [FlywayTestExecutionListener::class],
mergeMode = TestExecutionListeners.MergeMode.MERGE_WITH_DEFAULTS
)
【讨论】:
以上是关于Kotlin Spring Boot 单元测试 - 添加 @TestExecutionListeners 不会注入依赖项的主要内容,如果未能解决你的问题,请参考以下文章
Kotlin Spring Boot 单元测试 - 添加 @TestExecutionListeners 不会注入依赖项
如何模拟测试 Kotlin Spring Boot 2 应用程序
在 Kotlin 和 JUnit5 中测试 Spring Boot 缓存