Jest para TypeScript: Guía completa de pruebas

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
```html

¿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 typescript

Luego, inicializa la configuración de Jest:

npx ts-jest config:init

Esto 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.

```

Recommendations