Pruebas en TypeScript: descripción general de frameworks y herramientas modernos
TypeScript es un superconjunto de JavaScript con tipado estricto que se utiliza activamente en el desarrollo web moderno. Sin embargo, la tipificación por sí sola no garantiza la ausencia de errores lógicos. Para garantizar la calidad del código, es necesario realizar pruebas adecuadas. En este artículo, analizaremos los principales frameworks y herramientas para probar aplicaciones TypeScript, sus características y ejemplos de uso.
¿Por qué probar el código TypeScript?
A pesar de que TypeScript verifica los tipos en tiempo de compilación, no protege contra errores en tiempo de ejecución, lógica de negocio incorrecta o regresiones. Las pruebas ayudan a:
- Detectar errores antes de llegar a producción;
- Documentar el comportamiento de funciones y módulos;
- Simplificar la refactorización y el mantenimiento del código;
- Acelerar el proceso de desarrollo mediante la automatización de verificaciones.
Frameworks populares para pruebas en TypeScript
1. Jest — la opción universal
Jest es el framework más popular, creado por Facebook. Soporta TypeScript «de fábrica» a través del paquete ts-jest o la configuración de Babel. Jest incluye un test runner, librería de aserciones, mocking e informes de cobertura.
Instalación y configuración:
npm install --save-dev jest ts-jest @types/jestnpx ts-jest config:initEjemplo de prueba unitaria para una función de suma:
// sum.tsexport function sum(a: number, b: number): number { return a + b;}
// sum.test.tsimport { sum } from './sum';
describe('sum function', () => { test('adds 1 + 2 to equal 3', () => { expect(sum(1, 2)).toBe(3); });
test('adds negative numbers', () => { expect(sum(-1, -2)).toBe(-3); });});2. Vitest — alternativa rápida para proyectos Vite
Vitest es un framework moderno que utiliza Vite para la compilación. Es compatible con la API de Jest, pero funciona significativamente más rápido gracias al soporte nativo de módulos ES y HMR. Es ideal para proyectos en Vue, React o Svelte.
Ejemplo de configuración:
// vitest.config.tsimport { defineConfig } from 'vitest/config';
export default defineConfig({ test: { globals: true, environment: 'node', },});Prueba usando describe/it:
import { describe, it, expect } from 'vitest';
function multiply(a: number, b: number): number { return a * b;}
describe('multiply', () => { it('should multiply two numbers', () => { expect(multiply(3, 4)).toBe(12); });});3. Mocha + Chai — la clásica flexible
Mocha es un test runner flexible que a menudo se usa junto con la librería de aserciones Chai. Para TypeScript, será necesario instalar adicionalmente ts-node y @types/mocha. Mocha ofrece numerosos plugins y personalizaciones.
Ejemplo:
import { expect } from 'chai';
function greet(name: string): string { return `Hello, ${name}!`;}
describe('greet', () => { it('should return a greeting', () => { expect(greet('Alex')).to.equal('Hello, Alex!'); });});Herramientas para pruebas end-to-end (E2E)
4. Playwright — herramienta E2E moderna
Playwright de Microsoft soporta TypeScript de forma nativa, permite probar Chromium, Firefox y WebKit. Puede trabajar con solicitudes de red, emular dispositivos móviles y tomar capturas de pantalla.
Instalación:
npm init playwright@latestEjemplo de prueba para verificar el título de una página:
import { test, expect } from '@playwright/te También en la biblioteca
Generador de códigos QR en Kotlin: biblioteca ZXing y consejos de implementación
GraphQL en Node.js: Guía completa sobre la biblioteca graphql-http
Internacionalización (i18n) en Go (Golang): biblioteca go-i18n
TypeBox para TypeScript: guía completa con ejemplos prácticos