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