Kotlin:
Testien kirjoittaminen
Kuinka:
Kotlin tukee testivetoinen kehitystä eri frameworkien avulla, suosituimpina JUnit, Kotest ja MockK mockaamiseen. Tässä on yksinkertainen esimerkki käyttäen JUnitia:
import org.junit.jupiter.api.Test
import kotlin.test.assertEquals
class CalculatorTest {
@Test
fun `lisää kaksi numeroa`() {
val calculator = Calculator()
val tulos = calculator.add(2, 3)
assertEquals(5, tulos)
}
}
class Calculator {
fun add(a: Int, b: Int): Int = a + b
}
Esimerkki Tuloste
Testi läpi.
Monimutkaisempaa testaustapaa käyttäen Kotestia, joka tarjoaa idiomaattisemman Kotlin-testikirjoitustyylisi, katso esimerkki alla:
import io.kotest.core.spec.style.StringSpec
import io.kotest.matchers.shouldBe
class CalculatorSpec : StringSpec({
"2 ja 3 yhteenlaskun tulisi palauttaa 5" {
val calculator = Calculator()
calculator.add(2, 3) shouldBe 5
}
})
Käyttäen MockK:ta testaamiseen mockien kanssa:
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 palvelu = Service(repository)
@Test
fun `hanki data palauttaa mockatun datan`() {
every { repository.getData() } returns "Mockattu Data"
val tulos = palvelu.getData()
assertEquals("Mockattu Data", tulos)
}
}
class Service(private val repository: Repository) {
fun getData(): String = repository.getData()
}
interface Repository {
fun getData(): String
}
Esimerkki Tuloste
Testi läpi.
Nämä esimerkit havainnollistavat perusteet yksikkötestien kirjoittamisesta Kotlinissa. Sovelluksesi kasvaessa harkitse syventymistä edistyneempiin testaustekniikoihin ja -työkaluihin, joita kunkin kehyksen avulla tarjotaan.