Testes TypeScript: guia passo a passo para iniciantes

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Por que testar TypeScript não é assustador, mas sim vantajoso

\n\n

Você escreveu uma função legal em TypeScript, executou o projeto — tudo funciona. Uma semana depois, adicionou um novo recurso, e a lógica antiga quebrou. Familiar? Se sim, você precisa urgentemente se familiarizar com testes. E não tenha medo: testes não são uma obrigação chata, mas sim seu "detector de bugs" pessoal, que funciona 24 horas por dia, 7 dias por semana.

\n\n

Neste artigo, vamos abordar por onde começar a testar TypeScript para iniciantes. Você aprenderá como configurar o ambiente, escrever seu primeiro teste unitário e não se confundir com os tipos. Sem enrolação — apenas prática e exemplos de código reais.

\n\n

Por que testar TypeScript se ele já é seguro?

\n\n

O TypeScript realmente detecta muitos erros em tempo de compilação: tipos incorretos, campos ausentes, argumentos errados. Mas a tipagem estática não salva de erros lógicos. Sua função pode compilar perfeitamente, mas produzir um resultado incorreto. Por exemplo:

\n\n
function sum(a: number, b: number): number {\n  return a - b; // Erro! Em vez de soma — subtração\n}
\n\n

O TypeScript não reclamará — os tipos estão corretos. Mas um teste unitário mostrará imediatamente que sum(2, 2) não é igual a 4. Portanto, testar TypeScript não é um capricho, mas uma necessidade para qualquer projeto sério.

\n\n

Passo 1. Escolhendo a ferramenta: por que Jest é o melhor amigo do iniciante

\n\n

Existem vários frameworks populares para testes no mercado: Mocha, Jasmine, Vitest, Jest. Para iniciantes, recomendo fortemente o Jest. Por quê?

\n\n
    \n
  • Funciona "pronto para uso" — não precisa de configuração demorada.
  • \n
  • Mecanismo de mock integrado e cobertura de código.
  • \n
  • Excelente suporte para TypeScript através do ts-jest.
  • \n
  • Mensagens de erro claras.
  • \n
\n\n

Vamos instalar o Jest no seu projeto. Suponho que você já tenha o TypeScript. Se não, crie um novo projeto:

\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

Agora, crie o arquivo jest.config.js na raiz do projeto:

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

E adicione o script no package.json:

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

Pronto! Agora você pode escrever testes.

\n\n

Passo 2. Escrevendo o primeiro teste em TypeScript

\n\n

Crie uma função simples no arquivo 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('Divisão por zero não é permitida');\n  }\n  return a / b;\n}
\n\n

Agora, escreva um teste para ela. Crie a pasta src/__tests__/ e o arquivo math.test.ts:

\n\n
import { add, divide } from '../math';\n\ndescribe('Funções matemáticas', () => {\n  test('soma dois números corretamente', () => {\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 dois números', () => {\n    expect(divide(10, 2)).toBe(5);\n    expect(divide(9, 3)).toBe(3);\n  });\n\n  test('lança erro ao dividir por zero', () => {\n    expect(() => divide(5, 0)).toThrow('Divisão por zero não é permitida');\n  });\n});
\n\n

Execute npm test e veja o relatório verde. Parabéns — você acabou de escrever seus primeiros testes unitários em TypeScript!

\n\n

O que aconteceu aqui?

\n\n
    \n
  • describe — agrupa testes em um grupo lógico.
  • \n
  • test ou it — um caso de teste individual.
  • \n
  • expect — uma asserção que verifica

Blogs

Book Recommendations