TypeScript:
Escribiendo pruebas

Cómo hacerlo:

TypeScript funciona armoniosamente con la mayoría de los marcos de pruebas de JavaScript. Para fines de demostración, utilizaremos Jest, un marco de pruebas popular, debido a su configuración cero para proyectos TypeScript.

Primero, asegúrate de tener Jest y los tipos de TypeScript necesarios instalados:

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

Luego, configura Jest para trabajar con TypeScript modificando el jest.config.js o creando uno nuevo:

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

Ahora, escribamos una función simple y una prueba para ella. Considera un archivo sum.ts con la siguiente función:

// sum.ts
export function sum(a: number, b: number): number {
  return a + b;
}

Crea un archivo de prueba llamado sum.test.ts:

// sum.test.ts
import { sum } from './sum';

test('suma 1 + 2 para igual a 3', () => {
  expect(sum(1, 2)).toBe(3);
});

Ejecuta tus pruebas con:

npx jest

La salida de muestra que indica una prueba superada debería verse algo así:

 PASS  ./sum.test.ts
  ✓ suma 1 + 2 para igual a 3 (2 ms)

Para código asincrónico, Jest se acomoda con async/await. Supongamos que tienes una función asincrónica fetchData:

// asyncFunctions.ts
export async function fetchData(): Promise<string> {
  return "data";
}

Tu prueba usando funciones asíncronas:

// asyncFunctions.test.ts
import { fetchData } from './asyncFunctions';

test('obtiene datos exitosamente', async () => {
  expect(await fetchData()).toBe('data');
});

Cuando ejecutas tus pruebas, Jest esperará a que la promesa se resuelva, probando correctamente las operaciones asincrónicas.

Recuerda, la prueba efectiva incluye escribir múltiples pruebas para diferentes escenarios, incluidos casos límite, para asegurar que tu código TypeScript se comporte como se espera.