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 vitestAdicionalmente, se você usa React ou Vue, instale as utilidades relacionadas:
npm install -D @testing-library/react @testing-library/jest-domPrincipais 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 vitestVitest 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.
```Também na biblioteca
Configuração de aplicações Node.js: melhores bibliotecas e práticas
Registro em Go (Golang): melhores bibliotecas e soluções para produção
Superstruct para TypeScript: guia completo com exemplos
Métricas Prometheus em C# (.NET) — biblioteca prometheus-net
Geração de PDF em Swift (iOS/macOS): visão geral das ferramentas e exemplos