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.