Testes em TypeScript com Jest

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 é teste em TypeScript?

Teste em TypeScript é o processo de verificar a correção do código escrito na linguagem TypeScript, usando bibliotecas e frameworks especializados. TypeScript é uma extensão do JavaScript que adiciona tipagem estática, tornando os testes especialmente eficazes: os tipos ajudam a identificar erros em tempo de compilação, enquanto os testes verificam a lógica de negócios e o comportamento da aplicação. A principal biblioteca para testar TypeScript é o Jest, que suporta TypeScript nativamente ou através de configurações adicionais.

Por que os testes são necessários em TypeScript?

Os testes são necessários para garantir a confiabilidade do código, prevenir regressões, acelerar o desenvolvimento e documentar o comportamento das funções. Em TypeScript, os testes são especialmente úteis, pois verificam não apenas a lógica, mas também a conformidade dos tipos, reduzindo o número de erros em tempo de execução. Sem testes, é difícil manter projetos grandes, onde alterações em um módulo podem quebrar outras partes do sistema.

Como instalar o Jest para TypeScript?

Para instalar o Jest com suporte a TypeScript, execute os comandos no terminal:

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

Em seguida, crie um arquivo de configuração jest.config.js:

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

Ou use o comando de inicialização: npx ts-jest config:init. Depois disso, você pode executar os testes com o comando npx jest.

Principais funções do Jest em TypeScript

  • describe e it — agrupamento e descrição de casos de teste.
  • expect — asserções para verificar valores.
  • matchers — funções embutidas para comparação (toBe, toEqual, toBeTruthy, etc.).
  • mock-functions — simulação de dependências e módulos.
  • async/await — suporte a código assíncrono.
  • coverage — utilitário embutido para medir a cobertura de código pelos testes.

Exemplo de código em TypeScript

Vamos considerar uma função simples e seu teste:

// math.tsexport function add(a: number, b: number): number {  return a + b;}

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

describe('add function', () => { it('should add two numbers correctly', () => { expect(add(2, 3)).toBe(5); });

it('should handle negative numbers', () => { expect(add(-1, 1)).toBe(0); });

it('should return NaN for invalid inputs', () => { // TypeScript não permitirá passar uma string, mas se contornarmos os tipos: expect(add(NaN, 5)).toBeNaN(); });});

Execute o teste com o comando npx jest. Você verá um relatório sobre a execução dos testes e a cobertura.

Quando usar o Jest para TypeScript?

O Jest é recomendado nos seguintes casos:

  • Aplicações Node.js e servidores API em TypeScript.
  • Projetos front-end com React, Angular ou Vue (Jest funciona com DOM através do jsdom).
  • Bibliotecas e utilitários onde a segurança de tipos é importante.
  • Projetos com CI/CD que exigem execução automática de testes.
  • Arquitetura de microsserviços para teste isolado de módulos.

Evite o Jest se você precisar testar apenas tipos (use tsc --noEmit) ou se o projeto usar outro framework de teste (por exemplo, Mocha ou Vitest).

Recommendations