Gerador de Vitest test skeleton
Gera arquivo Vitest (TypeScript) com describe/it/expect para uma função importada de um módulo.
Vitest: o framework de testes moderno e nativo do Vite
O Vitest é um framework de testes JavaScript criado em 2021 por Anthony Fu e a comunidade do Vite, projetado desde o início para compartilhar o pipeline de transformação do Vite (esbuild / SWC) e o modo watch estilo HMR. O resultado é um runner que parece familiar para quem já usou Jest, mas é dramaticamente mais rápido em stacks modernas: não há um segundo transpilador, não há toolchain separada para dev e teste, e o mesmo vite.config.ts orquestra aplicação e testes. O Vitest virou padrão em projetos Vue, Svelte, SolidJS e qualquer base montada com Vite — e funciona bem em React, Astro e até em bibliotecas Node-only.
Um skeleton Vitest é quase idêntico a um Jest: describe, it / test e expect têm o mesmo comportamento, então migrar uma suíte existente costuma ser um find-and-replace. As duas diferenças principais são o import explícito — import { describe, it, expect } from 'vitest' (o Jest expõe esses globals por padrão) — e o comando do runner, que é vitest em vez de jest.
API compatível com Jest e algumas evoluções
Quase todo matcher do Jest funciona no Vitest: .toBe, .toEqual, .toMatchObject, .toThrow, .toMatchSnapshot e por aí vai. Os mocks ficam no namespace vi em vez de jest:
vi.fn()— função mockada com a mesma API de rastreio de chamadas.vi.spyOn(obj, 'metodo')— envolve um método existente.vi.mock('modulo', factory)— substitui um módulo inteiro;vi.hoisted()içar com segurança valores compartilhados usados dentro da factory.vi.useFakeTimers()/vi.advanceTimersByTime(ms)— controla o tempo de forma determinística.
In-source testing, snapshots e cobertura
Uma feature exclusiva do Vitest é o in-source testing: dá para colocar testes dentro do próprio arquivo de implementação atrás de if (import.meta.vitest) { ... }, e o bundler remove esse trecho no build de produção. Ótimo para bibliotecas pequenas onde manter spec e código lado a lado melhora a leitura. Snapshot testing tem o mesmo comportamento do Jest (.toMatchSnapshot, .toMatchInlineSnapshot). A cobertura é coletada pelo provider V8 por padrão — rápido e nativo do Node — e dá para optar pelo Istanbul quando precisar de relatórios mais detalhados.
Browser mode, dashboard de UI e workspaces
O Vitest entrega extras que o Jest nunca teve: browser mode (ainda evoluindo) para rodar testes de componente em browser real via Playwright ou WebdriverIO; um dashboard de UI com vitest --ui, interface web com runs, filtros e call traces; modo workspace para monorepos, onde cada pacote pode ter sua própria config; e uma flag --typecheck que roda tsc --noEmit sobre os arquivos de teste em paralelo. A performance é o principal argumento: em projetos baseados em Vite, benchmarks costumam mostrar o Vitest rodando 5-10x mais rápido que o Jest porque não há passo extra de transformação.
Integração com frameworks
Via plugins do Vite, o Vitest funciona com praticamente todo framework moderno: @vitejs/plugin-react para React, @vitejs/plugin-vue para Vue, @sveltejs/vite-plugin-svelte para Svelte. Todo o ecossistema @testing-library/* funciona out of the box, então testes de componente existentes de React ou Vue continuam funcionando com pouca alteração.
Perguntas frequentes
Como é a migração do Jest? Costuma ser uma sequência de mudanças mecânicas: trocar jest.* por vi.*, adicionar imports explícitos, adaptar o arquivo de config para vite.config.ts com um campo test e revisar chamadas de mock de módulo. Existem até codemods automatizados para bases grandes.
Suporta React? Sim — instale @vitejs/plugin-react e @testing-library/react e configure test.environment: 'jsdom' para testes com DOM.
O Vitest é sempre melhor que o Jest? Para projetos baseados em Vite, quase sempre sim — mesmo transform e bem mais rápido. Para projetos Webpack legados sem plano de migrar para Vite, o Jest continua uma escolha perfeitamente razoável.
Roda em browser real? Sim, via browser mode, mas a feature ainda está evoluindo — para E2E estável em browser, combine Vitest (unit/component) com Playwright (E2E).
O gerador envia meu código para algum lugar? Não — o skeleton é montado inteiramente no seu navegador. Nada é enviado ao servidor.
Ferramentas Relacionadas
Gerador de Jest test skeleton
Gere o esqueleto de um teste Jest com describe, beforeEach e um teste de exemplo já importando o seu módulo. Comece a testar seu código JavaScript na hora.
Gerador de Cypress test skeleton
Gere o esqueleto de um teste Cypress (cy.visit, cy.get e assertions) a partir de URL, seletor e texto esperado. Comece a testar sua aplicação web na hora.
Gerador de Skeleton CSS Loader
Gera o CSS de skeleton loaders animados (shimmer) para placeholders enquanto conteúdo real carrega. Cor e velocidade ajustáveis.