Ce biblioteci folosești pentru testare în Kotlin?
sobes.tech AI
Răspuns de la AI
-
JUnit 5: Cadru standard pentru testele unitare în JVM. Îl folosesc pentru majoritatea testelor unitare.
-
MockK: Bibliotecă pentru mockarea obiectelor și comportamentelor. Este utilă pentru crearea de mocks, stubs și verificarea interacțiunii obiectelor.
-
Kotest: Cadru multifuncțional pentru testare, care suportă diferite stiluri de scriere a testelor (Spec, WordSpec, StringSpec etc.). Îl folosesc adesea pentru a scrie teste mai expresive și structurate.
-
Truth: Bibliotecă pentru crearea de afirmații (assertions) ușor de citit. Face testele mai ușor de înțeles.
-
Robolectric: Cadru pentru testarea aplicațiilor Android fără un dispozitiv virtual sau emulator. Simulează mediul Android pe JVM.
-
Espresso: Cadru de la Google pentru testarea interfeței utilizatorului în Android. Îl folosesc pentru teste de integrare și UI în proiecte Android.
Exemplu de utilizare MockK:
// Importăm clasele necesare
import io.mockk.*
import org.junit.jupiter.api.Test
// Clasa de exemplu pe care o vom testa
class MyService(private val dependency: Dependency) {
fun processData(data: String): String {
val processed = dependency.process(data)
return "Result: $processed"
}
}
// Clasa de dependență pe care o vom mocka
interface Dependency {
fun process(input: String): String
}
class MyServiceTest {
@Test
fun testProcessData() {
// Creăm mock-ul de dependență
val mockDependency = mockk<Dependency>()
// Definim comportamentul mock-ului
every { mockDependency.process("input") } returns "processed_data"
// Creăm o instanță a clasei de testat cu mock-ul
val myService = MyService(mockDependency)
// Apelăm metoda de testat
val result = myService.processData("input")
// Verificăm rezultatul
assert(result == "Result: processed_data")
// Verificăm că metoda mock-ului a fost apelată cu argumentul așteptat
verify { mockDependency.process("input") }
}
}