Pular para o conteúdo
Tecnologia

Jest é o framework de testes mais popular do ecossistema JavaScript. Setup zero-config, mocking poderoso e cobertura integrada.

Conceitos Principais

Test Runners

Jest encontra arquivos *.test.js automaticamente. Roda testes em paralelo. Watch mode re-roda apenas alterados. CLI poderosa.

Matchers

expect(value).toBe(expected). toEqual para objetos. toContain para arrays. toThrow para exceções. Custom matchers.

Mocks

jest.fn() cria function mock. jest.mock() mocka módulo inteiro. Spy de funções. Timer mocks para async.

Coverage

Istanbul integrado. --coverage flag. Relatórios HTML. Thresholds configuráveis. CI/CD integration.

Passo a Passo

  1. Setup Jest: npm install --save-dev jest. package.json: "test": "jest". Zero config para projetos simples. TypeScript: adicione ts-jest.
  2. Primeiro Teste: sum.test.js: test("soma 1 + 2", () => expect(sum(1, 2)).toBe(3)). Rode: npm test. Watch: npm test -- --watch.
  3. Mock Functions: const mockFn = jest.fn(() => 42). expect(mockFn).toHaveBeenCalled(). mockReturnValue, mockResolvedValue para async.
  4. Coverage Report: jest --coverage. Veja coverage/ dir. HTML report em coverage/lcov-report/index.html. Configure thresholds em jest.config.js.
  5. Setup Avançado: jest.config.js: testEnvironment "jsdom" para browser. setupFilesAfterEnv para globals. moduleNameMapper para aliases.

Boas Praticas

Recomendacoes

• Descreva comportamento, não implementação

• Um assert por teste quando possível

• Use beforeEach para setup limpo

• Mock apenas dependências externas

• Coverage > 80% para código crítico

Erros Comuns

Evite estes erros

• Testar implementação ao invés de comportamento

• Testes dependentes uns dos outros

• Mockar tudo (testa mocks, não código)

• Ignorar testes falhando

Checklist

  • Jest instalado e configurado
  • Primeiro teste passando
  • Coverage acima de 80%
  • Mocks configurados corretamente
  • CI/CD rodando testes