Pruebas en TypeScript con Vitest

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é es Vitest y para qué sirve?

Vitest es una biblioteca moderna para unit-testing, orientada al ecosistema de Vite y TypeScript. Fue creada como una alternativa rápida a Jest, pero con soporte completo para TypeScript "de fábrica" sin configuración adicional. Vitest utiliza el parser nativo de TypeScript y el sistema de módulos de Vite, lo que hace que las pruebas sean instantáneas incluso en proyectos grandes.

Instalación

Instale Vitest en su proyecto TypeScript a través de npm:

npm install -D vitest

Adicionalmente, si usa React o Vue, instale las utilidades relacionadas:

npm install -D @testing-library/react @testing-library/jest-dom

Funciones principales

  • Velocidad: las pruebas se ejecutan en paralelo utilizando workers, lo que acelera la ejecución hasta 10 veces en comparación con Jest.
  • Compatibilidad con TypeScript: no requiere ts-jest ni babel — funciona directamente con archivos .ts y .tsx.
  • Mocks y spies integrados: funciones vi.mock, vi.spyOn y vi.fn para aislar el código.
  • Snapshot-testing: posibilidad de guardar y comparar capturas de componentes o datos.
  • Coverage: soporte integrado para c8 o istanbul para informes de cobertura de código.

Ejemplo de código en TypeScript

Escribamos una prueba para una función simple de suma:

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

// math.test.tsimport { describe, it, expect } from 'vitest';import { add } from './math';

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

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

it('should return zero for zero arguments', () => { expect(add(0, 0)).toBe(0); });});

Ejecución de las pruebas:

npx vitest

Vitest encontrará automáticamente todos los archivos con extensión .test.ts o .spec.ts.

Cuándo usarlo

Vitest es ideal para:

  • Proyectos nuevos en Vite: integración instantánea sin configuración.
  • Migración desde Jest: Vitest tiene una API similar, lo que facilita la transición.
  • Pruebas de bibliotecas TypeScript: soporte completo para decoradores, genéricos y tipos complejos.
  • Pipelines de CI/CD: la alta velocidad de ejecución ahorra tiempo en compilaciones automáticas.

Evite Vitest si su proyecto requiere versiones antiguas de Node.js (inferiores a 14) o si utiliza plugins específicos de Jest incompatibles con Vite.

Conclusión

Vitest es una herramienta moderna, rápida y amigable con TypeScript para realizar pruebas. Elimina muchas deficiencias de Jest, como el inicio lento y la configuración compleja de TypeScript. Si trabaja con TypeScript y valora la velocidad de desarrollo, Vitest será una excelente opción.

Recommendations