如何在 kotlin 中编写 @Nested 测试类

jac*_*ses 5 kotlin junit5

编写junit测试时:

internal class MyTest {
    @org.junit.jupiter.api.Nested
    class MyInnerClass {

    }
}
Run Code Online (Sandbox Code Playgroud)

我的代码编辑器 (IntelliJ) 显示警告

只有非静态嵌套类可以用作 @Nested 测试类。

如何在 kotlin 的 junit 测试中编写嵌套类?

Win*_*ter 7

在 kotlin 中使用 @Nested 类时,需要前缀inside,因为只有内部类可以用作嵌套类。

只有非静态嵌套类(即内部类)才能充当@Nested测试类。

你的代码应该看起来像这样:

internal class MyTest {
    @Nested
    inner class MyInnerClass {
        @Test
        fun customTest() {
           //TODO: do something
        }
    }
}
Run Code Online (Sandbox Code Playgroud)