Mar*_*tör 3 junit kotlin junit5
如果我运行SubClass下面的单元,我希望@AfterAll在测试后执行。然而,输出只是这样:
init in super class
init in sub class
test OK
Run Code Online (Sandbox Code Playgroud)
我不明白为什么SuperClass#stop()没有被调用。我知道这@AfterAll需要一个静态方法,或者Lifecycle.PER_CLASS这是给定的。
超级班
import org.junit.jupiter.api.AfterAll
import org.junit.jupiter.api.TestInstance
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
open class SuperClass {
init {
println("init in super class")
}
@AfterAll
fun stop(){
println("service stopped")
}
}
Run Code Online (Sandbox Code Playgroud)
子类
import org.junit.Test
open class SubClass : SuperClass() {
init {
println("init in sub class")
}
@Test
fun shouldRun() {
println("test OK")
}
}
Run Code Online (Sandbox Code Playgroud)
在您的 JUnit5 测试中使用org.junit.jupiter.api.Test而不是org.junit.Test(另请查看JUnit 5 用户指南 - 注释)。
以下将按预期工作:
import org.junit.jupiter.api.Test
open class SubClass : SuperClass() {
init {
println("init in sub class")
}
@Test
fun shouldRun() {
println("test OK")
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1175 次 |
| 最近记录: |