可以在Kotlin中编写函数(即在顶层)。我可以在顶层进行单元测试吗?

时间:2017-06-18 18:59:16

标签: java unit-testing testing junit kotlin

如果我在顶级(课外)编写代码。

我是否可以编写此代码的JUnit测试而无需为此测试目的创建类?

1 个答案:

答案 0 :(得分:2)

我们假设您在文件中有顶级功能:

// functions.kt
package some.pack.age

fun add(x: Int, y: Int) = x + y

您可以像这样创建测试(在IntelliJ中创建此文件的一种简单方法是使用函数名称上的Alt + Enter快捷方式,然后选择Create test):

// FunctionKtTest.kt - the default suggested name
package some.pack.age

import org.junit.Assert.*
import org.junit.Test

class FunctionsKtTest {
    @Test
    fun additionIsCorrect() {
        assertEquals(5, add(2, 3))
    }
}

JUnit测试本身确实需要定义一个包含@Test函数的类,当然你可以根据需要命名这个类。

如果您将此课程设置在与该功能相同的包中,您甚至不必导入它。如果您将它放在另一个包中,您仍然可以像这样导入顶级函数:

import some.pack.age.add