Kotlin:
Skriva tester
Hur man gör:
Kotlin stöder testdriven utveckling med olika ramverk, där de mest populära är JUnit, Kotest och MockK för att skapa mockobjekt. Här är ett enkelt exempel med JUnit:
import org.junit.jupiter.api.Test
import kotlin.test.assertEquals
class CalculatorTest {
@Test
fun `lägger till två nummer`() {
val calculator = Calculator()
val result = calculator.add(2, 3)
assertEquals(5, result)
}
}
class Calculator {
fun add(a: Int, b: Int): Int = a + b
}
Exempelutdata
Test passed.
För en mer sofistikerad testansats med Kotest, som erbjuder en mer idiomatisk Kotlin-testskrivningsstil, se exempel nedan:
import io.kotest.core.spec.style.StringSpec
import io.kotest.matchers.shouldBe
class CalculatorSpec : StringSpec({
"att lägga till 2 och 3 ska returnera 5" {
val calculator = Calculator()
calculator.add(2, 3) shouldBe 5
}
})
Använda MockK för testning med mockobjekt:
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 `get data returnerar mockad data`() {
every { repository.getData() } returns "Mockad Data"
val result = service.getData()
assertEquals("Mockad Data", result)
}
}
class Service(private val repository: Repository) {
fun getData(): String = repository.getData()
}
interface Repository {
fun getData(): String
}
Exempelutdata
Test passed.
Dessa exempel illustrerar grunderna för att skriva enhetstester i Kotlin. När din applikation växer, överväg att utforska mer avancerade testtekniker och verktyg som tillhandahålls av varje ramverk.