Kokias bibliotekas naudojate testavimui Kotlin'e?
sobes.tech AI
Atsakymas iš AI
-
JUnit 5: Standartinis JVM modulinių testų rėmas. Naudojamas daugiausia vienetiniams testams.
-
MockK: Objektų ir elgsenos mokinimo biblioteka. Patogu kurti mokius, stabus ir patvirtinti sąveiką tarp objektų.
-
Kotest: Daugiakomponentinis testavimo rėmas, palaikantis įvairius testų rašymo stilius (Spec, WordSpec, StringSpec ir kt.). Dažnai naudojamas rašyti išraiškingesnius ir struktūruotus testus.
-
Truth: Patvirtinimų (assertions) kūrimo biblioteka. Padaro testus aiškesnius.
-
Robolectric: Android programėlių testavimo rėmas be virtualaus įrenginio ar emuliatoriaus. Imituoja Android aplinką JVM.
-
Espresso: Google rėmas Android naudotojo sąsajos testavimui. Naudojamas integraciniams ir UI testams Android projektuose.
MockK naudojimo pavyzdys:
// Reikalingų klasių importavimas
import io.mockk.*
import org.junit.jupiter.api.Test
// Testuojamos klasės pavyzdys
class MyService(private val dependency: Dependency) {
fun processData(data: String): String {
val processed = dependency.process(data)
return "Result: $processed"
}
}
// Moko priklausomybės klasės pavyzdys
interface Dependency {
fun process(input: String): String
}
class MyServiceTest {
@Test
fun testProcessData() {
// Moko priklausomybės sukūrimas
val mockDependency = mockk<Dependency>()
// Moko elgsenos nustatymas
every { mockDependency.process("input") } returns "processed_data"
// Testuojamos klasės sukūrimas su mokiu
val myService = MyService(mockDependency)
// Metodo iškvietimas
val result = myService.processData("input")
// Rezultato patikrinimas
assert(result == "Result: processed_data")
// Moko metodo iškvietimo patikrinimas
verify { mockDependency.process("input") }
}
}