Jest para TypeScript: Guia completo de testes

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

O que é Jest e por que ele é necessário para TypeScript?

Jest é um framework poderoso e popular para testar JavaScript e TypeScript, desenvolvido pela Meta (Facebook). Ele fornece tudo o que é necessário para escrever unit tests, integration tests e snapshot tests "prontos para uso": biblioteca de assertions, mocks, spies, timers e cobertura de código. Para TypeScript, Jest é especialmente valioso, pois permite verificar tipos durante a execução dos testes, aumentando a confiabilidade do código. Usar Jest com TypeScript ajuda os desenvolvedores a encontrar erros mais rapidamente, refatorar código com confiança e manter a alta qualidade do projeto.

Instalação e configuração

Para começar, instale o Jest e os tipos necessários via npm ou yarn:

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

Em seguida, inicialize a configuração do Jest:

npx ts-jest config:init

Isso criará um arquivo jest.config.js com as configurações para TypeScript. Certifique-se de que no tsconfig.json esteja definido "module": "commonjs" ou use ts-node para ESM.

Principais funcionalidades

  • describe e it/test — agrupar e escrever testes.
  • expect — função de assertion com vários matchers (toBe, toEqual, toContain, toThrow, etc.).
  • beforeEach / afterEach — hooks para preparar e limpar o ambiente.
  • jest.mock — mocking automático de módulos.
  • jest.spyOn — espionar chamadas de funções.
  • Snapshot testing — comparar a saída de componentes.
  • Cobertura de código — utilitário embutido --coverage.

Exemplo de código em TypeScript

// math.tsexport const add = (a: number, b: number): number => a + b;export const divide = (a: number, b: number): number => {  if (b === 0) throw new Error('Division by zero');  return a / b;};

// math.test.tsimport { add, divide } from './math';

describe('Math functions', () => { test('adds two numbers correctly', () => { expect(add(2, 3)).toBe(5); expect(add(-1, 1)).toBe(0); });

test('throws error when dividing by zero', () => { expect(() => divide(10, 0)).toThrow('Division by zero'); });

test('divides correctly', () => { expect(divide(10, 2)).toBe(5); expect(divide(9, 3)).toBeCloseTo(3); });});

Quando usar Jest com TypeScript?

  • Qualquer projeto em TypeScript — desde pequenas bibliotecas até grandes aplicações.
  • Desenvolvimento com TDD — Jest é excelente para escrever testes antes da implementação.
  • Refatoração — para garantir que as mudanças não quebrem a lógica existente.
  • Pipelines de CI/CD — execução rápida de testes e verificação de cobertura.
  • Teste de componentes React — junto com @testing-library/react.

Jest é o padrão de facto para testar TypeScript, graças à simplicidade de configuração, API rica e excelente integração com ferramentas modernas.

Recommendations