【发布时间】:2019-01-07 18:28:25
【问题描述】:
我想在我的 springBootTest 中有一个 @BeforeClass 方法,它应该是静态的并在“companion object”中声明。
@RunWith(SpringRunner::class)
@SpringBootTest
@ActiveProfiles("test")
open class MyTest {
companion object {
@Autowired
lateinit var repo: MyRepository
@BeforeClass
@JvmStatic
fun X() {
user = User()
repo.save(user)
}
}
另一方面,我应该在此方法中使用一些 Autowired 组件,但如前所述 here 在静态上下文中是不可能的,我收到了这个错误:
lateinit property repo has not been initialized
关于我应该如何处理这种情况的任何建议?
【问题讨论】:
-
Autowire 根本无法自动连接静态字段。在每次测试之前设置你的 repo,而不是在课程是你唯一真正的选择之前。
标签: spring spring-boot junit kotlin spring-boot-test