Matchers Comunes en Hamcrest
⏱ Dedicación recomendada: 0 minutos
Esto considera el contenido visible y relevante, e ignora texto colapsado o marcado como opcional.
En JUnit con Hamcrest, los matchers permiten verificar condiciones de manera expresiva, similar a Kotest, pero utilizando una combinación de assertThat
y diferentes matchers para lograr las mismas validaciones.
Ejemplos Comunes de Matchers en JUnit + Hamcrest:
- Igualdad: Verifica si un valor es igual a otro.
assertThat(result, is(42));
- Desigualdad: Verifica que dos valores no son iguales.
assertThat(result, not(0));
- No Nulo: Asegura que un valor no es nulo.
assertThat(result, notNullValue());
- Contenido en Cadenas: Verifica que una cadena contiene otra.
assertThat(string, containsString("world"));
- Empieza con: Verifica que una cadena comienza con un prefijo específico.
assertThat(string, startsWith("Hello"));
Encadenar Matchers en JUnit + Hamcrest
Al igual que en Kotest, en Hamcrest también es posible encadenar matchers para combinar múltiples condiciones en una sola declaración.
Por ejemplo:
assertThat(result, allOf(greaterThan(10), lessThan(50), notNullValue()));
En este ejemplo, se verifica que result
:
- Es mayor que 10.
- Es menor que 50.
- No es nulo.
Otro ejemplo con cadenas:
assertThat(string, allOf(startsWith("Hello"), containsString("world"), endsWith("!")));
Aquí se verifica que string
:
- Comienza con "Hello".
- Contiene "world".
- Termina con "!".
¿Qué Aprendimos?
En esta lección, exploramos el uso de matchers comunes en JUnit con Hamcrest, una herramienta que permite realizar aserciones de manera más expresiva y flexible, similar a Kotest. Vimos ejemplos básicos de matchers para verificar igualdad, no nulidad y manipulación de cadenas, además de cómo encadenar múltiples condiciones utilizando allOf
y anyOf
.
Puntos clave
- Hamcrest permite realizar verificaciones expresivas utilizando
assertThat
. - Se pueden encadenar múltiples matchers en una sola expresión para realizar verificaciones más complejas.
- Aunque Hamcrest puede ser algo más verboso que Kotest, sigue siendo una herramienta potente para realizar aserciones en JUnit.
Estos principios son clave para escribir tests más legibles, robustos y fáciles de mantener.
Bibliografías Recomendadas
- 🌐 "Hamcrest Tutorial." Accedido: 4 de octubre de 2024. [En línea]. Disponible en: https://hamcrest.org/JavaHamcrest/tutorial