Jest es un framework JavaScript para generar pruebas unitarias.
En el desarrollo de aplicaciones es esencial hacer Tests Unitarios para garantizar el correcto funcionamiento del código. Una prueba unitaria verifica que una función hace lo que debe, además permite que la aplicación sea más robusta, pues si añadimos cambios en el código de la aplicación, los tests nos aseguran que no se rompe ninguna funcionalidad, dándonos mayor fiabilidad y confianza para desplegar la aplicación a los usuarios.
Existen varias herramientas como Vitest, Jest, Bun, etc. diseñadas para facilitar la configuración y ejecución de pruebas unitarias que nos ayudan a que el proceso de creación de pruebas sea eficiente y accesible incluso para desarrolladores con poca experiencia.
Jest es un framework de pruebas en JavaScript desarrollado por Facebook. Es conocido por ser “zero-config”, lo que significa que, en la mayoría de los casos, no es necesario realizar configuraciones complejas para comenzar a usarlo. Además, Jest proporciona herramientas y funciones integradas, como mocks y mediciones e informes de cobertura (coverage).
Jest es compatible con la mayoría de frameworks y bibliotecas de JavaScript, como React, Angular, Vue, y Node.js entre otras. Gracias a su capacidad de trabajar de manera aislada, asegura que cada prueba se ejecute en un entorno limpio, evitando interferencias entre pruebas.
Para comenzar a usar Jest en tu proyecto, primero necesitas instalarlo utilizando npm. Ejecuta el siguiente comando en tu terminal:
npm install --save-dev jest
Esto instalará la librería como una dependencia de desarrollo en tu proyecto.
Supongamos que tenemos una función que suma dos números. El código de la función podría ser el siguiente:
export const sum = (a, b) => a + b;
Ahora crearemos un archivo de prueba para verificar que la función sum
funciona correctamente:
import { sum } from './sum';
test('suma de 1 + 2 debe ser 3', () => { expect(sum(1, 2)).toBe(3);});
En el ejemplo anterior hemos usado la función expect
que sirve para comprobar que los valores cumplen ciertas condiciones. Expect abre la puerta a usar distintos matchers que son funciones que te permiten hacer distintas validaciones. Algunos ejemplos:
toBe(value)
toBeDefined(value)
toBeNull(value)
toContain(value)
toEqual()
not.toBe(value)
Puedes ver la lista completa de opciones.
Añade este código en el archivo package.json
de tu proyecto:
{ "scripts": { "test": "jest" }}
Para ejecutar las pruebas, utiliza el siguiente comando en tu terminal:
npm test
Esto ejecutará todas las pruebas en tu proyecto y mostrará los resultados en la consola. Si todo está configurado correctamente, deberías ver un mensaje indicando que las pruebas pasaron exitosamente.
PASS ./sum.test.js✓ suma de 1 + 2 debe ser 3 (5ms)
A veces nos puede interesar generar un archivo de cobertura de pruebas que nos indique qué porcentaje de código está testeado. Esto puede ser útil para conectar con otras aplicaciones de calidad de código como SonarQube, o simplemente para analizarlo nosotros mismos. Podemos ejecutar este comando:
jest --coverage
.
Jest es un framework muy versátil y fácil de usar para realizar pruebas unitarias en JavaScript. Hoy en día se considera el mejor framework para crear tests unitarios en grandes aplicaciones. Su configuración simple, velocidad, herramientas integradas para medir la cobertura del código y soporte para mocking lo convierten en una elección ideal para proyectos modernos. Si estás comenzando con las pruebas unitarias o buscando mejorar tu flujo de trabajo de desarrollo, Jest es una excelente opción para explorar.