Функцию можно написать в Котлине (т.е. на верхнем уровне). Могу ли я также тестировать те, кто находится на верхнем уровне?

Если я пишу код на верхнем уровне (вне класса).

Могу ли я написать 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