¿Qué es Jest y para qué sirve?
\n\nJest 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\nJest 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
Instalación de Jest
\n\nJest se instala a través del gestor de paquetes npm o yarn. Para un proyecto Node.js, esta es la forma estándar.
# Instalación como dependencia de desarrollo (recomendado)\nnpm install --save-dev jest\n\n# O con yarn\nyarn add --dev jest\n\n\nDespués de la instalación, agregue un script para ejecutar las pruebas en su package.json:
{\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\nAhora puede ejecutar las pruebas con el comando npm test.
Inicio rápido con ejemplo de código
\n\nSupongamos que tenemos un módulo simple para operaciones matemáticas math.js:
// 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\nCreemos un archivo de prueba math.test.js (Jest por defecto busca archivos con extensión .test.js o .spec.js):
// 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\nEjecute las pruebas:
\n\nnpm test\n\nVerá en la consola un informe sobre la ejecución de las pruebas. Si todo es correcto, ambas pruebas se marcarán con un ✓ verde.
Métodos y funciones principales de Jest
\n\nJest proporciona una API rica. Veamos 10 métodos clave que cubrirán el 90% de sus tareas.
\n\n1. test(name, fn, timeout) / it(name, fn, timeout)
\nQué hace: Define una nueva prueba. test e it son sinónimos. Puede usar cualquiera.
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
Ejemplo:
\ntest('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'). También en la biblioteca
Generación de Swagger/OpenAPI en Kotlin: guía completa de herramientas
Tokens JWT en Go (Golang): creación y verificación con ejemplos
Autorización y autenticación en Rust: guía completa
Awaitility en Java: guía completa con ejemplos prácticos
Monitoreo de aplicaciones Rust: la biblioteca tracing y métricas