Es posible escribir la function en Kotlin (es decir, en el nivel superior). ¿Puedo probar la unidad también en el nivel superior?

Si escribo código en el nivel superior (fuera de una class).

¿Puedo escribir una testing JUnit de este código sin crear una class para este propósito de testing?

Supongamos que tiene una function de nivel superior en un file:

// functions.kt package some.pack.age fun add(x: Int, y: Int) = x + y 

Puede crear una testing para eso (una forma fácil de crear este file en IntelliJ es usar el atajo Alt + Enter sobre el nombre de la function y elegir 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)) } } 

La testing JUnit sí requiere una class para ser definida que contenga las funciones @Test , por supuesto puede nombrar a esta class todo lo que desee.

Si coloca esta class en el mismo package que la function, ni siquiera tiene que importarla. Si tuviera que colocarlo en otro package, aún podría importar su function de nivel superior así:

 import some.pack.age.add