Testes em TypeScript com Vitest

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
```html

O que é Vitest e para que serve?

Vitest é uma biblioteca moderna para unit-testing, focada no ecossistema Vite e TypeScript. Ela foi criada como uma alternativa rápida ao Jest, mas com suporte total a TypeScript "out of the box" sem configuração adicional. Vitest utiliza o parser nativo do TypeScript e o sistema de módulos do Vite, tornando os testes instantâneos mesmo em projetos grandes.

Instalação

Instale o Vitest no seu projeto TypeScript via npm:

npm install -D vitest

Adicionalmente, se você usa React ou Vue, instale as utilidades relacionadas:

npm install -D @testing-library/react @testing-library/jest-dom

Principais funcionalidades

  • Velocidade: os testes são executados em paralelo usando workers, acelerando a execução em até 10 vezes comparado ao Jest.
  • Compatibilidade com TypeScript: não requer ts-jest ou babel — funciona diretamente com arquivos .ts e .tsx.
  • Mocks e spies integrados: funções vi.mock, vi.spyOn e vi.fn para isolar código.
  • Snapshot-testing: capacidade de salvar e comparar snapshots de componentes ou dados.
  • Coverage: suporte integrado ao c8 ou istanbul para relatórios de cobertura de código.

Exemplo de código em TypeScript

Vamos escrever um teste para uma função simples de soma:

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

// math.test.tsimport { describe, it, expect } from 'vitest';import { add } from './math';

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

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

it('should return zero for zero arguments', () => { expect(add(0, 0)).toBe(0); });});

Executando os testes:

npx vitest

Vitest encontrará automaticamente todos os arquivos com extensão .test.ts ou .spec.ts.

Quando usar

Vitest é ideal para:

  • Novos projetos em Vite: integração instantânea sem configuração.
  • Migração do Jest: Vitest possui API semelhante, facilitando a transição.
  • Testes de bibliotecas TypeScript: suporte completo a decorators, generics e tipos complexos.
  • Pipelines de CI/CD: alta velocidade de execução economiza tempo em builds automáticos.

Evite Vitest se o seu projeto exigir versões antigas do Node.js (abaixo da 14) ou se você usar plugins específicos do Jest incompatíveis com Vite.

Conclusão

Vitest é uma ferramenta moderna, rápida e amigável ao TypeScript para testes. Ela elimina muitas desvantagens do Jest, como inicialização lenta e configuração complexa do TypeScript. Se você trabalha com TypeScript e valoriza a velocidade de desenvolvimento, Vitest será uma excelente escolha.

```

Recommendations