可以在Kotlin中编写函数(即在顶层)。 我可以unit testing那些顶级?
如果我在顶层编写代码(在课堂之外)。
我可以编写此代码的JUnit测试,而无需为此测试目的创建类?
假设你在一个文件中有一个顶级函数:
// functions.kt package some.pack.age fun add(x: Int, y: Int) = x + y
你可以像这样创建一个测试(在IntelliJ中创建这个文件的一个简单的方法是使用function名称上的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