Tests unitarios con MockK
Kotlin Nights - Testing edition
Slide 2
Slide 2 text
Sobre mí
● Facundo Rodríguez Arceri
● Buenos Aires, Argentina
● Android developer en Ring (Amazon)
● Docente e instructor
● Experiencia desarrollando con Android desde 2011
● @facundomr
Slide 3
Slide 3 text
Agenda
● Calidad en el software
● ¿Qué es una prueba?
● ¿En qué consiste una prueba?
● Tipos de pruebas
● Pruebas unitarias
● Mocking
● Características de MockK
● Demo
Slide 4
Slide 4 text
Calidad en el software
● ¿Qué es la calidad?
● ¿Cómo se mide?
● ¿Cómo se puede asegurar que la calidad de un producto de software es la
correcta?
○ ¿Extreme programming?
○ ¿Software craftmanship?
Slide 5
Slide 5 text
¿Qué es una prueba?
● La prueba consiste en la búsqueda de errores en el sistema.
● Las pruebas muestran la presencia, no la ausencia de errores (bugs)
Slide 6
Slide 6 text
¿En qué consiste una prueba?
1. Se define una situación inicial.
2. Se realiza una operación sobre el sistema.
3. Se evalúa la situación final, comparándola con la esperada.
Este proceso es análogo a la revisión de un contrato.
Given - When - Then
Pruebas unitarias
● Sirven para probar la unidad más básica de código: una función/método
● Un test por funcionalidad, en funciones (tests) separados, agrupados en
una clase.
● Se escribirá al menos un test por función, pudiendo haber más de un test
para una misma función.
Slide 10
Slide 10 text
Demo
¡Aprendamos haciendo!
Slide 11
Slide 11 text
Mocking
● Un Mock es un objeto simulado
● Cuando una clase que estamos probando depende de otra, ¿cómo
mantenemos el test unitario?
○ Proveyendo mocks como dependencias
● ¿Qué formas hay de hacer esto?
○ Mockito + mockito-kotlin + PowerMockito
○ MockK
Slide 12
Slide 12 text
MockK
Slide 13
Slide 13 text
MockK
● https://mockk.io/
● Biblioteca para escribir mocks-spys en Kotlin en forma idiomática, concisa
y más fácil de leer.
● Completa
○ mock, spy
○ verify
○ extension functions, objects
○ slot, capture
○ corutinas