【发布时间】:2016-11-25 18:22:20
【问题描述】:
目前 JUnit 5 API 仅允许 @BeforeAll 用于静态方法。
所以如果我做这样的事情,它不会编译:
@BeforeAll
fun setup() {
MockitoAnnotations.initMocks(this)
mvc = MockMvcBuilders.standaloneSetup(controller).build()
}
为了在 Kotlin 中有一个静态方法,我必须像这样使用companion object:
companion object {
@JvmStatic
@BeforeAll
fun setup() {
MockitoAnnotations.initMocks(this)
mvc = MockMvcBuilders.standaloneSetup(smsController).build()
}
}
这将编译,但我无权访问父类中的变量。那么使用 Kotlin 调用 JUnit 5 @BeforeAll 的惯用方式是什么?
【问题讨论】:
-
我觉得你用
@BeforeAll是不对的。为什么不使用@BeforeEach? -
我的印象是 JUnit 5 只实例化测试类一次,但看起来它对每个测试用例都进行了。
@BeforeAll和@BeforeEach之间没有区别……几乎没有区别
标签: java junit mockito kotlin junit5