Kotlin:
Skrive tester
Hvordan:
Kotlin støtter testdrevet utvikling med forskjellige rammeverk, der de mest populære er JUnit, Kotest og MockK for mocking. Her er et enkelt eksempel som bruker JUnit:
import org.junit.jupiter.api.Test
import kotlin.test.assertEquals
class CalculatorTest {
@Test
fun `legger til to tall`() {
val calculator = Calculator()
val resultat = calculator.add(2, 3)
assertEquals(5, resultat)
}
}
class Calculator {
fun add(a: Int, b: Int): Int = a + b
}
Eksempelresultat
Testen bestått.
For en mer sofistikert testtilnærming med Kotest, som tilbyr en mer idiomatisk Kotlin testskrivingsstil, se eksempelet nedenfor:
import io.kotest.core.spec.style.StringSpec
import io.kotest.matchers.shouldBe
class CalculatorSpec : StringSpec({
"å legge til 2 og 3 skal returnere 5" {
val calculator = Calculator()
calculator.add(2, 3) shouldBe 5
}
})
Bruk av MockK for testing med mock-objekter:
import io.mockk.every
import io.mockk.mockk
import org.junit.jupiter.api.Test
import kotlin.test.assertEquals
class ServiceTest {
private val repository = mockk<Repository>()
private val service = Service(repository)
@Test
fun `hent data returnerer mocket data`() {
every { repository.getData() } returns "Mocket Data"
val resultat = service.getData()
assertEquals("Mocket Data", resultat)
}
}
class Service(private val repository: Repository) {
fun getData(): String = repository.getData()
}
interface Repository {
fun getData(): String
}
Eksempelresultat
Testen bestått.
Disse eksemplene illustrerer grunnleggende prinsipper for å skrive enhetstester i Kotlin. Ettersom applikasjonen din vokser, bør du vurdere å utforske mer avanserte testteknikker og verktøy som hvert rammeverk tilbyr.