Guía de pruebas con Jest para desarrolladores de JavaScript
Las pruebas te ayudan a encontrar errores de forma temprana. Mejoran la calidad del código. Te permiten lanzar funcionalidades sin romper el código existente.
Jest es una herramienta de pruebas popular para JavaScript y Node.js. Fue creada por Meta. Funciona con TypeScript, React, Next.js y Express.js.
¿Por qué usar Jest?
- Requiere poca configuración.
- Ejecuta las pruebas en paralelo para mayor velocidad.
- Incluye herramientas de mocking.
- Muestra informes de cobertura de código.
- Proporciona mensajes de error claros.
Cómo configurar Jest:
- Crea un proyecto de Node.js:
npm init -y - Instala Jest:
npm install --save-dev jest - Actualiza los scripts de
package.jsonpara incluir"test": "jest" - Ejecuta las pruebas con:
npm test
Escribir una prueba sencilla:
Crea sum.js:
function sum(a, b) {
return a + b;
}
module.exports = sum;
Crea sum.test.js:
const sum = require("./sum");
test("adds two numbers", () => {
expect(sum(2, 3)).toBe(5);
});
Herramientas esenciales de Jest:
- Assertions: Usa
expect()ytoBe()para verificar valores. - Objects: Usa
toEqual()para comparar objetos o arrays. - Organization: Usa
describe()para agrupar pruebas relacionadas. - Async: Jest maneja funciones asíncronas de forma natural usando
await. - Mocks: Usa
jest.fn()para simular funciones. Esto mantiene las pruebas rápidas al evitar llamadas reales a APIs o consultas a bases de datos. - Hooks: Usa
beforeEach()yafterEach()para configurar o limpiar los datos de prueba.
Mide tu éxito:
Ejecuta npx jest --coverage para ver tu informe de cobertura. Esto muestra qué partes de tu código carecen de pruebas.
Pruebas de APIs:
Usa Supertest para probar endpoints de API. Puedes verificar los códigos de estado sin iniciar un servidor real.
Snapshot Testing:
Usa matchSnapshot() en React. Esto te ayuda a encontrar cambios inesperados en la interfaz de usuario comparando los renders actuales con las versiones guardadas.
Mejores prácticas:
- Escribe pruebas que describan resultados.
- Evita probar la estructura interna del código.
- Mantente alejado de las bases de datos reales en las pruebas unitarias.
- Enfócate en una cobertura significativa.
Dominar Jest te ayuda a construir software confiable.