Если я пишу код на верхнем уровне (вне класса).
Могу ли я написать JUnit-тест этого кода, не создавая класс для этой цели тестирования?
Допустим, у вас есть функция верхнего уровня в файле:
// 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