在超类中,使用@BeforeClass
注释的方法似乎不会被执行
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
open class TestBase {
var status: Boolean = false
@BeforeAll
open fun setStatus() {
status = true
}
}
class MyAppTest : TestBase() {
@Test
fun testStatus() {
assertTrue(status) //fails
}
}
这是理想的行为还是我做错了什么?
答案 0 :(得分:2)
documentation明确指出:
@BeforeAll
方法从超类继承,只要它们不是隐藏或重写即可。此外,超类中的@BeforeAll
方法将在子类中的@BeforeAll
方法之前执行。
所以这不是理想的行为。但由于setStatus()
打开,您必须小心不要覆盖。