¿Qué bibliotecas utilizas para las pruebas en Kotlin?
sobes.tech AI
Respuesta de la IA
-
JUnit 5: Marco de trabajo estándar para pruebas unitarias en JVM. Lo uso para la mayoría de las pruebas unitarias.
-
MockK: Biblioteca para simular objetos y comportamientos. Es útil para crear mocks, stubs y verificar la interacción de objetos.
-
Kotest: Marco de trabajo multifuncional para pruebas, que soporta diferentes estilos de escritura de pruebas (Spec, WordSpec, StringSpec, etc.). Lo uso a menudo para escribir pruebas más expresivas y estructuradas.
-
Truth: Biblioteca para crear afirmaciones (assertions) legibles. Hace que las pruebas sean más comprensibles.
-
Robolectric: Marco de trabajo para probar aplicaciones Android sin un dispositivo virtual o emulador. Simula el entorno Android en JVM.
-
Espresso: Marco de trabajo de Google para probar la interfaz de usuario en Android. Lo uso para pruebas de integración y UI en proyectos Android.
Ejemplo de uso de MockK:
// Importamos las clases necesarias
import io.mockk.*
import org.junit.jupiter.api.Test
// Clase de ejemplo que vamos a probar
class MyService(private val dependency: Dependency) {
fun processData(data: String): String {
val processed = dependency.process(data)
return "Result: $processed"
}
}
// Clase de dependencia que vamos a simular
interface Dependency {
fun process(input: String): String
}
class MyServiceTest {
@Test
fun testProcessData() {
// Creamos el mock de la dependencia
val mockDependency = mockk<Dependency>()
// Definimos el comportamiento del mock
every { mockDependency.process("input") } returns "processed_data"
// Creamos una instancia de la clase a probar con el mock
val myService = MyService(mockDependency)
// Ejecutamos el método a probar
val result = myService.processData("input")
// Verificamos el resultado
assert(result == "Result: processed_data")
// Verificamos que el método del mock fue llamado con el argumento esperado
verify { mockDependency.process("input") }
}
}