Можно написать функцию в 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
Другие вопросы по тегам