Skip to content
Latchkey

O que é o Jest? O framework de testes JavaScript explicado

Jest é um framework de testes JavaScript completo, com test runner, asserções, mocking e snapshot testing embutidos.

O Jest se tornou o framework de testes JavaScript padrão ao reunir em uma única ferramenta tudo o que um projeto precisa: um runner, uma biblioteca de asserções, mocking, coverage e snapshot testing, com pouca configuração. É especialmente comum em projetos React e Node.js.

O que é o Jest

Jest é um framework de testes que inclui um test runner, uma API de asserção "expect" com muitos matchers, um sistema de mocking, code coverage e snapshot testing. Ele roda testes em ambientes isolados e pode executá-los em paralelo entre processos worker para ganhar velocidade.

Matchers, mocks e snapshots

As asserções se leem como "expect(value).toBe(expected)", com matchers para igualdade, tipos, erros e mais. O Jest pode fazer auto-mock de módulos ou permitir que você defina implementações de mock. O snapshot testing registra uma saída serializada e sinaliza quando ela muda, o que é útil para componentes de UI, mas exige cuidado para não aprovar mudanças ruins automaticamente.

Um exemplo de teste

Um teste agrupa asserções com describe e it.

A minimal Jest test
test("adds numbers", () => {
  expect(1 + 2).toBe(3);
});

test("mock is called", () => {
  const fn = jest.fn();
  fn("x");
  expect(fn).toHaveBeenCalledWith("x");
});

Papel em CI/CD

No CI, o Jest roda a suíte de testes unitários e de integração, saindo com código diferente de zero em falhas para falhar o job. O "jest --ci" ajusta o comportamento para automação (por exemplo, falhando em vez de gravar novos snapshots). Suítes grandes são um gargalo comum; o Jest paraleliza entre workers, e fazer shard dos testes entre jobs ou executá-los em runners gerenciados mais rápidos reduz o tempo de feedback.

Alternativas

Vitest é um framework mais rápido, nativo do Vite, com uma API compatível com o Jest. Mocha com Chai é uma alternativa flexível e modular. O test runner embutido do Node é uma opção leve. O Jest continua popular por seu design tudo-em-um e seu ferramental maduro para React.

Principais conclusões

  • O Jest reúne runner, asserções, mocking, coverage e snapshots.
  • Ele roda testes em paralelo e sai com código diferente de zero em falhas no CI.
  • Use "jest --ci" e faça shard de suítes grandes para manter os pipelines rápidos.

Guias relacionados