Es un curso de test con JUnit en castellano, cubre desde aspectos básicos a avanzados.
A lo largo del curso veremos las tecnologías más empleadas en la realización de test unitarios en Java y JUnit.
El curso introduce al alumno los conceptos básicos necesarios como objeto bajo test, test de integración, test unitarios.
Avance paulatino viendo en profundidad las características más relevantes, todas las lecciones se acompañan de ejemplos prácticos que ilustran las explicaciones.
Además haremos una breve introducción a la gestión de dependencias con Maven. Crearemos un proyecto Maven y ejecutaremos los test los test unitarios, obteniendo un informe de cobertura con EclEmma
Introdúcete en el mundo del testing de manera sencilla.
Introducción
Clase de introducción al curso
Si has llegado hasta este curso es poco probable que no dispongas de un entorno de desarrollo y la JDK de Java instalada. De cualquier manera y para hacer más accesible el curso a todo el mundo, haremos una sesión para instalar el entorno que usaremos durante el resto del curso.
Vamos a agregar las librerías de JUnit al proyecto para poder empezar a realizar test. En esta lección lo haremos manualmente.
Veremos la manera más sencilla que proporciona eclipse para utilizar las librerías de JUnit
Aprenderemos a usar Maven para añadir librerías a nuestro proyecto.
Veremos:
- La estructura de un proyecto Maven
- Donde ubicar las clases del proyecto y donde ubicar las clases de test
- Archivo settings.xml
- La carpeta .m2 (repositorio local de maven)
- Gestionar dependencias a través del pom.xml
Instalaremos un plugin que nos ayudará a crear las clases de test, nos permitirá movernos entre una clase y su test y controlar de manera visual que clases tienen test y cuales no.
En esta lección veremos el uso básico del plugin MoreUnit
JUnit. Testeando nuestras clases
Conceptos básicos de test.
Veremos que es el SUT Sujeto bajo test, y el funcionamiento general de los test con JUnit con un ejemplo sencillo.
En esta lección veremos la diferencia entre error y fallo de un test
Veremos las diferentes opciones que permite JUnit para realizar acciones antes y después de cada uno de los test y antes y después de la ejecución de todos los test de una clase.
Que es una aserción, tipos de aserciones de JUnit. Mi favorita AssertThat
En esta lección recordaremos los conceptos básicos que maneja java para la igualdad de objetos, como requisito previo para ver assertEquals
Implementación de un test que prueba los método assertEquals y assertArrayEquals para un ejemplo con el objeto Persona descrito en la lección anterior.
Metodología de trabajo.
Uso de atajos de teclado. Mejora de la lectura de los test.
Implementación de un test que prueba asseetEquals y assertArrayEquals sobre un método que devuelve un String[]
Implementación de un test que prueba assertTrue y assertFalse.
Implementación de un test que prueba assertNull y assertNotNull
Implementación de un test que prueba AssertSame () y assertNotSame ()
Introducción superficial a debug de test en JUnit, se tratan temas como los puntos de ruptura (breakpoint) o los identificadores de los objetos en debug.
Introducción al uso de Matchers de la librería de Hamcrest
En esta lección veremos posibles alternativas al uso de los matchers que incluye JUnit (hamcrest-core) añadiendo a nuestro proyecto la librería hamcrest-library lo que simplifica su uso.
Los test se ejecutan de manera más o menos aleatoria y no es buena idea confiar en la salida de la ejecución de un test para realizar el siguiente (No se debería hacer nunca). No obstante, hay maneras de hacer que los test se ejecuten en un determinado orden.
Gestionando excepciones
Comportamiento del método fail()
Test de métodos que lanzan excepciones a través de bloques try - catch
Veremos como capturar excepciones a través del parámetro expexted de la anotación @Test
Test de métodos que lanzan excepciones a través reglas
Cobertura de test
Que es la cobertura de los test y como medirla. Plugin EclEmma
Test parametrizados
Continuamos viendo los test parametrizados. Diferentes formas de abordarlos.
Continuamos viendo los test parametrizados. Diferentes formas de abordarlos II
En este tema veremos la ejecución de test parametrizados
Uso de la librería JUnitParams que simplifica la ejecución de test paramétricos
Theories & Assumptions
Que es una Assumption y para qué se utiliza en JUnit
Introducción a las teorías en JUnit