Pruebas en TypeScript con Jest

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é son las pruebas en TypeScript?

Las pruebas en TypeScript son el proceso de verificar la corrección del código escrito en el lenguaje TypeScript, utilizando bibliotecas y frameworks especializados. TypeScript es una extensión de JavaScript que añade tipado estático, lo que hace que las pruebas sean especialmente efectivas: los tipos ayudan a detectar errores en la etapa de compilación, mientras que las pruebas verifican la lógica de negocio y el comportamiento de la aplicación. La biblioteca principal para pruebas en TypeScript es Jest, que soporta TypeScript de forma nativa o mediante configuraciones adicionales.

¿Por qué son necesarias las pruebas en TypeScript?

Las pruebas son necesarias para garantizar la fiabilidad del código, prevenir regresiones, acelerar el desarrollo y documentar el comportamiento de las funciones. En TypeScript, las pruebas son especialmente útiles porque verifican no solo la lógica, sino también la conformidad de tipos, lo que reduce la cantidad de errores en tiempo de ejecución. Sin pruebas, es difícil mantener proyectos grandes, donde los cambios en un módulo pueden romper otras partes del sistema.

¿Cómo instalar Jest para TypeScript?

Para instalar Jest con soporte para TypeScript, ejecute los siguientes comandos en la terminal:

npm install --save-dev jest @types/jest ts-jest typescript

Luego, cree un archivo de configuración jest.config.js:

module.exports = {  preset: 'ts-jest',  testEnvironment: 'node',};

O use el comando de inicialización: npx ts-jest config:init. Después de esto, puede ejecutar las pruebas con el comando npx jest.

Funciones principales de Jest en TypeScript

  • describe e it — agrupación y descripción de casos de prueba.
  • expect — afirmaciones (assertions) para verificar valores.
  • matchers — funciones integradas para comparación (toBe, toEqual, toBeTruthy, etc.).
  • mock-funciones — simulación de dependencias y módulos.
  • async/await — soporte para código asíncrono.
  • coverage — utilidad integrada para medir la cobertura de código por las pruebas.

Ejemplo de código en TypeScript

Consideremos una función simple y su prueba:

// math.tsexport function add(a: number, b: number): number {  return a + b;}

// math.test.tsimport { add } from './math';

describe('add function', () => { it('should add two numbers correctly', () => { expect(add(2, 3)).toBe(5); });

it('should handle negative numbers', () => { expect(add(-1, 1)).toBe(0); });

it('should return NaN for invalid inputs', () => { // TypeScript no permitirá pasar una cadena, pero si se evitan los tipos: expect(add(NaN, 5)).toBeNaN(); });});

Ejecute la prueba con el comando npx jest. Verá un informe sobre la ejecución de las pruebas y la cobertura.

¿Cuándo usar Jest para TypeScript?

Se recomienda usar Jest en los siguientes casos:

  • Aplicaciones Node.js y servidores API en TypeScript.
  • Proyectos frontend con React, Angular o Vue (Jest funciona con DOM a través de jsdom).
  • Bibliotecas y utilidades donde la seguridad de tipos es importante.
  • Proyectos con CI/CD, donde se requiere la ejecución automática de pruebas.
  • Arquitectura de microservicios para pruebas aisladas de módulos.

Evite Jest si necesita probar solo tipos (use tsc --noEmit) o si el proyecto utiliza otro framework de pruebas (por ejemplo, Mocha o Vitest).

Recommendations