¿Qué es Jest y por qué es necesario para TypeScript?
Jest es un framework de testing potente y popular para JavaScript y TypeScript, desarrollado por la empresa Meta (Facebook). Proporciona todo lo necesario para escribir unit tests, integration tests y snapshot tests «listos para usar»: librería de assertions, mocks, spies, timers y cobertura de código. Para TypeScript, Jest es especialmente valioso, ya que permite verificar tipos durante la ejecución de las pruebas, lo que aumenta la fiabilidad del código. El uso de Jest con TypeScript ayuda a los desarrolladores a encontrar errores más rápido, refactorizar código con confianza y mantener una alta calidad en el proyecto.
Instalación y configuración
Para empezar, instala Jest y los tipos necesarios a través de npm o yarn:
npm install --save-dev jest @types/jest ts-jest typescriptLuego, inicializa la configuración de Jest:
npx ts-jest config:initEsto creará un archivo jest.config.js con la configuración para TypeScript. Asegúrate de que en tsconfig.json esté establecido "module": "commonjs" o utiliza ts-node para ESM.
Funciones principales
- describe y it/test — agrupación y escritura de tests.
- expect — función de assertion con múltiples matchers (toBe, toEqual, toContain, toThrow, etc.).
- beforeEach / afterEach — hooks para preparar y limpiar el entorno.
- jest.mock — mock automático de módulos.
- jest.spyOn — seguimiento de llamadas a funciones.
- Snapshot testing — comparación de la salida de componentes.
- Cobertura de código — utilidad integrada
--coverage.
Ejemplo de código en TypeScript
// math.tsexport const add = (a: number, b: number): number => a + b;export const divide = (a: number, b: number): number => { if (b === 0) throw new Error('Division by zero'); return a / b;};
// math.test.tsimport { add, divide } from './math';
describe('Math functions', () => { test('adds two numbers correctly', () => { expect(add(2, 3)).toBe(5); expect(add(-1, 1)).toBe(0); });
test('throws error when dividing by zero', () => { expect(() => divide(10, 0)).toThrow('Division by zero'); });
test('divides correctly', () => { expect(divide(10, 2)).toBe(5); expect(divide(9, 3)).toBeCloseTo(3); });});¿Cuándo usar Jest con TypeScript?
- Cualquier proyecto en TypeScript — desde pequeñas librerías hasta grandes aplicaciones.
- Desarrollo con TDD — Jest es ideal para escribir tests antes de la implementación.
- Refactorización — para asegurarse de que los cambios no rompan la lógica existente.
- Pipelines de CI/CD — ejecución rápida de tests y verificación de cobertura.
- Testing de componentes React — junto con @testing-library/react.
Jest es el estándar de facto para el testing de TypeScript, gracias a su facilidad de configuración, su rica API y su excelente integración con herramientas modernas.
```También en la biblioteca
Generación Swagger/OpenAPI para Java: bibliotecas y herramientas
Doctrine ORM para PHP: guía completa con ejemplos
Trabajo con XML en Go (Golang): paquete encoding/xml y alternativas