TypeScript:
Escrevendo testes

Como fazer:

O TypeScript funciona em harmonia com a maioria dos frameworks de teste em JavaScript. Para fins de demonstração, usaremos o Jest, um framework de teste popular, devido à sua configuração zero para projetos TypeScript.

Primeiro, certifique-se de que você tenha o Jest e os tipos necessários do TypeScript instalados:

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

Em seguida, configure o Jest para trabalhar com TypeScript modificando o jest.config.js ou criando um novo:

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

Agora, vamos escrever uma função simples e um teste para ela. Considere um arquivo sum.ts com a seguinte função:

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

Crie um arquivo de teste chamado sum.test.ts:

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

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

Execute seus testes com:

npx jest

Um exemplo de saída indicando um teste aprovado deve parecer algo assim:

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

Para código assíncrono, o Jest acomoda com async/await. Suponha que você tenha uma função assíncrona fetchData:

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

Seu teste usando funções assíncronas:

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

test('busca dados com sucesso', async () => {
  expect(await fetchData()).toBe('data');
});

Ao executar seus testes, o Jest esperará a promessa ser resolvida, testando corretamente as operações assíncronas.

Lembre-se, testes eficazes incluem escrever múltiplos testes para diferentes cenários, incluindo casos extremos, para garantir que o seu código TypeScript se comporte como esperado.