Curso completo

Testes de Unidade com Jest

Escreva os testes mais próximos do código: Aprenda Jest, do seu primeiro expect até código assíncrono, mocks, timers falsos, snapshots e cobertura, com um design de testes que encontra bugs reais e um pipeline de CI que falha por causa deles.

~4 horas de conteúdo

Ver aulas

Conteúdo do curso

13 aulas completas cobrindo tudo o que você precisa saber

Introdução

Introdução
Estrutura do curso
Saiba como o curso está organizado e aproveite o conteúdo ao máximo.
Introdução
Pré-requisitos
Sistemas e conhecimentos necessários para concluir o curso.
Introdução
Conhecendo o código sob teste
Conheça o Bookshelf, as regras de empréstimo de uma pequena biblioteca, e o README que as especifica.
Aula
Aula 1
Fork, clone e instalação do Jest
Faça o fork e o clone do repositório, instale o Jest e leia a sua primeira execução de testes (vazia).

Os seus primeiros testes

Aula
Aula 2
O seu primeiro teste de unidade
Escreva um teste com describe, test e expect, execute-o e aprenda a ler uma falha.
Aula
Aula 3
Matchers que importam
Escolha o matcher que descreve a regra, e impeça que matchers de veracidade escondam bugs.
Aula
Aula 4
Testando erros
Verifique que o código lança o erro certo, com a mensagem certa, pelo motivo certo.
Aula
Aula 5
Desenhando casos de teste
Transforme classes de equivalência e valores limite em uma tabela test.each, e deixe-a encontrar um bug.

Organizando testes e estado

Aula
Aula 6
Preparação, limpeza e isolamento
Use hooks para dar a cada teste um começo do zero, e pegue testes que só passam em uma ordem.

Código assíncrono e dublês de teste

Aula
Aula 7
Código assíncrono
Teste promises com async e await, e pegue o await esquecido que faz um teste mentir.
Aula
Aula 8
Dublês de teste e jest.fn()
Diferencie stubs, spies, mocks e fakes, e substitua uma dependência com jest.fn().
Aula
Aula 9
Mockando módulos
Mocke um módulo de que o código faz o require diretamente, e veja quanto custa mockar demais.
Aula
Aula 10
Controlando o tempo e a aleatoriedade
Congele o relógio, avance os timers e fixe o Math.random() para testar as suas duas pontas.

Snapshots, cobertura e CI

Aula
Aula 11
Testes de snapshot
Use snapshots para saídas estáveis, e evite que eles virem um carimbo.
Aula
Aula 12
Cobertura de código
Meça a cobertura, defina um limite mínimo e encontre a regra que a sua suíte executa, mas nunca verifica.
Aula
Aula 13
Executando os seus testes no GitHub Actions
Execute a suíte a cada push, e prove que o build fica vermelho com um teste falhando ou uma queda de cobertura.

Bônus e conclusão

Bônus
Bônus: Jest, Vitest ou node:test?
Os mesmos testes em três runners: o que se transfere sem mudança, o que muda e como escolher.
Bônus
Bônus: Testes de unidade com IA
Rascunhe testes de unidade com um assistente de IA, e julgue-os contra as regras antes de confiar neles.
Conclusão
Parabéns!
Você concluiu o curso Testes de Unidade com Jest!