Testes em TypeScript: visão geral de frameworks e ferramentas

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

Testes em TypeScript: visão geral de frameworks e ferramentas modernas



TypeScript é um superconjunto estritamente tipado do JavaScript, amplamente utilizado no desenvolvimento web moderno. No entanto, a tipagem por si só não garante a ausência de erros lógicos. Para garantir a qualidade do código, são necessários testes adequados. Neste artigo, abordaremos os principais frameworks e ferramentas para testar aplicações TypeScript, suas características e exemplos de uso.



Por que testar código TypeScript?

Apesar de o TypeScript verificar tipos em tempo de compilação, ele não protege contra erros de tempo de execução, lógica de negócios incorreta ou regressões. Os testes ajudam a:

  • Detectar erros antes de irem para produção;
  • Documentar o comportamento de funções e módulos;
  • Simplificar a refatoração e a manutenção do código;
  • Acelerar o processo de desenvolvimento através da automação de verificações.


Frameworks populares para testar TypeScript



1. Jest — a escolha universal

Jest é o framework mais popular, criado pelo Facebook. Ele suporta TypeScript "pronto para uso" através do pacote ts-jest ou da configuração do Babel. Jest inclui test runner, biblioteca de asserções, mocking e relatórios de cobertura.



Instalação e configuração:

npm install --save-dev jest ts-jest @types/jestnpx ts-jest config:init


Exemplo de teste unitário para uma função de soma:

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

// sum.test.tsimport { sum } from './sum';

describe('sum function', () => { test('adds 1 + 2 to equal 3', () => { expect(sum(1, 2)).toBe(3); });

test('adds negative numbers', () => { expect(sum(-1, -2)).toBe(-3); });});


2. Vitest — alternativa rápida para projetos Vite

Vitest é um framework moderno que utiliza o Vite para build. Ele é compatível com a API do Jest, mas funciona significativamente mais rápido devido ao suporte nativo a módulos ES e HMR. É ideal para projetos em Vue, React ou Svelte.



Exemplo de configuração:

// vitest.config.tsimport { defineConfig } from 'vitest/config';

export default defineConfig({ test: { globals: true, environment: 'node', },});


Teste usando describe/it:

import { describe, it, expect } from 'vitest';

function multiply(a: number, b: number): number { return a * b;}

describe('multiply', () => { it('should multiply two numbers', () => { expect(multiply(3, 4)).toBe(12); });});


3. Mocha + Chai — a flexibilidade clássica

Mocha é um test runner flexível, frequentemente usado em conjunto com a biblioteca de asserções Chai. Para TypeScript, é necessário instalar adicionalmente o ts-node e o @types/mocha. O Mocha oferece diversos plugins e personalizações.



Exemplo:

import { expect } from 'chai';

function greet(name: string): string { return `Hello, ${name}!`;}

describe('greet', () => { it('should return a greeting', () => { expect(greet('Alex')).to.equal('Hello, Alex!'); });});


Ferramentas para testes end-to-end (E2E)



4. Playwright — ferramenta E2E moderna

Playwright, da Microsoft, suporta TypeScript nativamente e permite testar Chromium, Firefox e WebKit. Ele é capaz de lidar com requisições de rede, emular dispositivos móveis e tirar screenshots.



Instalação:

npm init playwright@latest


Exemplo de teste para verificar o título de uma página:

import { test, expect } from '@playwright/te                    

Recommendations