Pruebas de TypeScript: guía paso a paso para principiantes

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

Por qué las pruebas de TypeScript no dan miedo, sino que son beneficiosas

\n\n

Escribiste una función genial en TypeScript, ejecutaste el proyecto — todo funciona. Una semana después agregaste una nueva funcionalidad, y la lógica anterior se rompió. ¿Te suena familiar? Si es así, necesitas urgentemente hacerte amigo de las pruebas. Y no tengas miedo: las pruebas no son una obligación aburrida, sino tu «detector de errores» personal que funciona 24/7.

\n\n

En este artículo, analizaremos por dónde empezar a probar TypeScript para un principiante. Aprenderás cómo configurar el entorno, escribir tu primera prueba unitaria y no confundirte con los tipos. Sin rodeos — solo práctica y ejemplos de código reales.

\n\n

¿Por qué probar TypeScript si ya es seguro?

\n\n

TypeScript realmente detecta muchos errores en la etapa de compilación: tipos incorrectos, campos faltantes, argumentos inválidos. Pero la tipificación estática no salva de errores lógicos. Tu función puede compilar perfectamente, pero dar un resultado incorrecto. Por ejemplo:

\n\n
function sum(a: number, b: number): number {\n  return a - b; // ¡Error! En lugar de suma — resta\n}
\n\n

TypeScript no se quejará — los tipos se respetan. Pero una prueba unitaria mostrará inmediatamente que sum(2, 2) no es igual a 4. Por lo tanto, probar TypeScript no es un capricho, sino una necesidad para cualquier proyecto serio.

\n\n

Paso 1. Elegir la herramienta: por qué Jest es el mejor amigo del principiante

\n\n

En el mercado hay varios frameworks populares para pruebas: Mocha, Jasmine, Vitest, Jest. Para principiantes, recomiendo encarecidamente Jest. ¿Por qué?

\n\n
    \n
  • Funciona «de fábrica» — no necesita mucha configuración.
  • \n
  • Mecanismo de simulación (mock) y cobertura de código integrados.
  • \n
  • Excelente soporte para TypeScript a través de ts-jest.
  • \n
  • Mensajes de error claros.
  • \n
\n\n

Instalemos Jest en tu proyecto. Asumo que ya tienes TypeScript. Si no, crea un nuevo proyecto:

\n\n
mkdir my-ts-project\ncd my-ts-project\nnpm init -y\nnpm install typescript jest @types/jest ts-jest --save-dev
\n\n

Ahora creemos un archivo jest.config.js en la raíz del proyecto:

\n\n
module.exports = {\n  preset: 'ts-jest',\n  testEnvironment: 'node',\n  roots: ['/src'],\n  testMatch: ['**/__tests__/**/*.ts', '**/?(*.)+(spec|test).ts'],\n};
\n\n

Y agreguemos un script en package.json:

\n\n
"scripts": {\n  "test": "jest",\n  "test:watch": "jest --watch"\n}
\n\n

¡Listo! Ahora puedes escribir pruebas.

\n\n

Paso 2. Escribir la primera prueba en TypeScript

\n\n

Creemos una función simple en el archivo src/math.ts:

\n\n
export function add(a: number, b: number): number {\n  return a + b;\n}\n\nexport function divide(a: number, b: number): number {\n  if (b === 0) {\n    throw new Error('División por cero no permitida');\n  }\n  return a / b;\n}
\n\n

Ahora escribamos una prueba para ella. Crea la carpeta src/__tests__/ y el archivo math.test.ts:

\n\n
import { add, divide } from '../math';\n\ndescribe('Funciones matemáticas', () => {\n  test('suma dos números correctamente', () => {\n    expect(add(2, 3)).toBe(5);\n    expect(add(-1, 1)).toBe(0);\n    expect(add(0, 0)).toBe(0);\n  });\n\n  test('divide dos números', () => {\n    expect(divide(10, 2)).toBe(5);\n    expect(divide(9, 3)).toBe(3);\n  });\n\n  test('lanza un error al dividir por cero', () => {\n    expect(() => divide(5, 0)).toThrow('División por cero no permitida');\n  });\n});
\n\n

Ejecuta npm test y verás un informe verde. Felicidades — acabas de escribir tus primeras pruebas unitarias en TypeScript!

\n\n

¿Qué pasó aquí?

\n\n
    \n
  • describe — agrupa las pruebas en un grupo lógico.
  • \n
  • test o it — un caso de prueba individual.
  • \n
  • expect — una aserción que verifica

Blogs

Book Recommendations