Usando matchers en Jest para pruebas efectivas

Autor: | Última modificación: 18 de marzo de 2024 | Tiempo de Lectura: 3 minutos
Temas en este post:

Algunos de nuestros reconocimientos:

Premios KeepCoding

¿Qué son exactamente los matchers en Jest y cómo podemos usarlos para hacer nuestras pruebas más efectivas? En el mundo del desarrollo web, las pruebas son una parte esencial del proceso. Permiten verificar que nuestro código funciona como esperamos y que no introducimos errores cuando realizamos cambios. Uno de los marcos de prueba más populares en JavaScript es Jest y, dentro de este, la función expect y sus matcher juegan un papel crucial.

¿Qué son los matchers en Jest?

Los matchers en Jest son métodos que nos permiten definir cómo queremos comparar el resultado de nuestra prueba con el resultado esperado. Podemos pensar en ellos como las condiciones que esperamos que cumpla nuestro código.

Por ejemplo, si estamos probando una función que suma dos números, podríamos usar el matcher toEqual para verificar que el resultado es el valor esperado. Si nuestra función suma 2 y 2, esperaríamos que el resultado fuera 4. Así que usaríamos toEqual para comparar el resultado con 4.

test('suma 2 + 2 es igual a 4', () => {
  expect(sumar(2, 2)).toEqual(4);
});

En este ejemplo, toEqual es el matcher que estamos usando. Pero ¿sabías que existen múltiples matchers que puedes usar?

La lista completa de matchers en Jest

Tienes una lista completa de matchers en Jest a tu disposición, cada uno de ellos con un propósito diferente. Aquí te muestramos algunos ejemplos:

  • toBe: compara la igualdad estricta (como ===).
  • toEqual: compara la igualdad de valor y tipo, pero funciona correctamente para comparar objetos y arrays.
  • toBeGreaterThan, toBeLessThan: compara si un número es mayor o menor que otro.
  • toBeCloseTo: útil para comparar valores de punto flotante.

Te recomendamos revisar la documentación oficial para obtener la lista completa de matchers.

Es importante que elijas el matcher que corresponda de manera más precisa a lo que estás tratando de verificar en tu prueba. Por ejemplo, si estás comparando números de punto flotante, es más conveniente usar toBeCloseTo en lugar de toEqual para evitar problemas con pequeños errores de precisión.

Ejemplos prácticos de uso de matchers

Para ilustrar cómo usar estos matchers en Jest, vamos a considerar algunos ejemplos prácticos. Digamos que estás probando una función que calcula el área de un círculo. Dado que este cálculo implica π, los resultados son números de punto flotante. En este caso, sería más preciso usar toBeCloseTo en lugar de toEqual.

test('el área de un círculo con radio 2 es aproximadamente 12.57', () => {
  expect(areaCirculo(2)).toBeCloseTo(12.57, 2);
});

Aquí, toBeCloseTo nos permite especificar un número de decimales para la comparación, evitando así pequeños errores de precisión.

Como has visto, Jest proporciona una gran variedad de matchers que puedes usar para hacer tus pruebas más precisas y efectivas. El truco está en conocer la lista completa de matchers disponibles y elegir el que corresponda de manera más precisa a lo que estás intentando verificar en tu prueba. El aprendizaje de estos matchers y su correcto uso en tus pruebas te proporcionará una valiosa habilidad en tu trabajo como desarrollador.

¡Lleva tu aprendizaje al siguiente nivel!

¿Quieres aprender más sobre Jest y otros aspectos esenciales del desarrollo web? No dudes en unirte a nuestro Desarrollo Web Full Stack Bootcamp. Este programa intensivo te proporcionará las habilidades y los conocimientos que necesitas para convertirte en un desarrollador web altamente capacitado.

El sector tecnológico es una industria con una alta demanda de profesionales y ofrece salarios competitivos. ¿Te gustaría formar parte de él? ¡Entra ahora para pedir más información y descubre cómo cambiar tu vida con KeepCoding!

¡CONVOCATORIA ABIERTA!

Desarrollo Web

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado