Jest para JavaScript (Node.js): guía completa con ejemplos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Qué es Jest y para qué sirve?

\n\n

Jest es un potente y popular framework para pruebas de código JavaScript, desarrollado por la empresa Facebook (Meta). Proporciona todo lo necesario para escribir pruebas unitarias, de integración y de extremo a extremo "listo para usar": herramientas para crear aserciones (assertions), mocking, spies, temporizadores, así como una herramienta integrada para medir la cobertura de código (code coverage).

\n\n

Jest se utiliza ampliamente en el ecosistema de React, pero es perfectamente adecuado para probar cualquier código JavaScript, incluyendo aplicaciones en Node.js, Angular, Vue.js y otros frameworks.

\n\n

¿Para qué sirve Jest?

\n
    \n
  • Automatización de verificaciones: Permite comprobar rápida y confiablemente que su código funciona correctamente después de cada cambio.
  • \n
  • Prevención de regresiones: Las pruebas ayudan a asegurar que el código nuevo no haya roto la funcionalidad existente.
  • \n
  • Documentación: Las pruebas bien escritas sirven como documentación viva, mostrando cómo debería funcionar cada función o módulo.
  • \n
  • Confianza en la refactorización: Tener pruebas permite reescribir y mejorar el código de forma segura.
  • \n
  • Simplicidad de configuración: Jest funciona "listo para usar" sin necesidad de una configuración compleja.
  • \n
\n\n

Instalación de Jest

\n\n

Jest se instala a través del gestor de paquetes npm o yarn. Para un proyecto Node.js, esta es la forma estándar.

\n\n
# Instalación como dependencia de desarrollo (recomendado)\nnpm install --save-dev jest\n\n# O con yarn\nyarn add --dev jest\n
\n\n

Después de la instalación, agregue un script para ejecutar las pruebas en su package.json:

\n\n
{\n  "scripts": {\n    "test": "jest",\n    "test:watch": "jest --watch", // Ejecución en modo observación\n    "test:coverage": "jest --coverage" // Ejecución con informe de cobertura\n  }\n}\n
\n\n

Ahora puede ejecutar las pruebas con el comando npm test.

\n\n

Inicio rápido con ejemplo de código

\n\n

Supongamos que tenemos un módulo simple para operaciones matemáticas math.js:

\n\n
// math.js\nfunction add(a, b) {\n  return a + b;\n}\n\nfunction subtract(a, b) {\n  return a - b;\n}\n\nmodule.exports = { add, subtract };\n
\n\n

Creemos un archivo de prueba math.test.js (Jest por defecto busca archivos con extensión .test.js o .spec.js):

\n\n
// math.test.js\nconst { add, subtract } = require('./math');\n\ntest('adds 1 + 2 to equal 3', () => {\n  expect(add(1, 2)).toBe(3);\n});\n\ntest('subtracts 5 - 3 to equal 2', () => {\n  expect(subtract(5, 3)).toBe(2);\n});\n
\n\n

Ejecute las pruebas:

\n\n
npm test
\n\n

Verá en la consola un informe sobre la ejecución de las pruebas. Si todo es correcto, ambas pruebas se marcarán con un ✓ verde.

\n\n

Métodos y funciones principales de Jest

\n\n

Jest proporciona una API rica. Veamos 10 métodos clave que cubrirán el 90% de sus tareas.

\n\n

1. test(name, fn, timeout) / it(name, fn, timeout)

\n

Qué hace: Define una nueva prueba. test e it son sinónimos. Puede usar cualquiera.

\n

Parámetros:

\n
    \n
  • name (string) — nombre de la prueba que se mostrará en el informe.
  • \n
  • fn (function) — función que contiene la lógica de la prueba (aserciones).
  • \n
  • timeout (number, opcional) — tiempo de espera de la prueba en milisegundos (por defecto 5000).
  • \n
\n

Ejemplo:

\n
test('dos más dos es igual a cuatro', () => {\n  expect(2 + 2).toBe(4);\n});\n\nit('la cadena "hello" tiene una longitud de 5', () => {\n  expect('hello').                    

Recommendations