Guia Completo: Configurando Sua Primeira Suíte de Testes com Jest


Os testes automatizados desempenham um papel crucial no desenvolvimento de software, proporcionando confiança e segurança nas mudanças de código. Neste tutorial, exploraremos como configurar sua primeira suíte de testes utilizando Jest, uma poderosa estrutura de teste para projetos JavaScript. Vamos passar por todos os passos, desde a instalação até a execução de testes de unidade e integração.
Por que jest?

Jest é um framework de testes amplamente adotado para projetos JavaScript. Desenvolvido pelo Facebook, é um dos frameworks mais populares da atualidade, e muitos desenvolvedores resolvem adota-lo por diversos motivos, entre eles:
1. Simplicidade de Configuração:
Jest possui uma configuração mínima e é fácil de ser configurado em projetos JavaScript. Ele tem uma configuração padrão inteligente, o que significa que você pode começar a escrever testes rapidamente sem precisar de muita configuração.
2. Rápido e Eficiente:
Jest é conhecido por sua execução rápida de testes, tornando-o eficiente para grandes conjuntos de testes. Ele também oferece paralelismo automático, dividindo os testes em processos independentes para acelerar a execução.
3. Integração com React:
Jest é frequentemente usado em projetos React, e é a estrutura padrão recomendada pela equipe do React. Ele vem com funcionalidades específicas para testar componentes React, incluindo suporte para snapshots.
4. Mocking Integrado:
Jest possui uma capacidade de mocking integrada, facilitando a simulação de módulos, funções e objetos durante os testes. Isso é útil para isolar partes específicas do código durante os testes de unidade.
5. Suporte a ES6/TypeScript:
Jest suporta naturalmente o uso de código ECMAScript 6 (ES6) e TypeScript, facilitando a adoção em projetos modernos.
6. Snapshot Testing:
Jest oferece suporte a testes de snapshots, permitindo que você capture “instantâneos” de componentes ou estruturas de dados e os compare em execuções futuras. Isso ajuda a evitar regressões inadvertidas.
7. Integração com Cobertura de Código:
Jest possui integração nativa com relatórios de cobertura de código, o que facilita a visualização da extensão do seu código coberto pelos testes.
8. Comunidade Ativa e Suporte Contínuo:
Jest é mantido pela comunidade open source e tem uma base de usuários ativa. Isso significa que há uma abundância de recursos, documentação e suporte disponíveis.
9. Fácil de Aprender e Usar:
Com sua sintaxe intuitiva e documentação abrangente, Jest é considerado fácil para iniciantes e oferece recursos avançados para usuários mais experientes.
Em resumo, Jest é escolhido por sua facilidade de uso, desempenho rápido, recursos integrados e suporte à comunidade, tornando-se uma escolha popular para testes em projetos JavaScript.
Criando seu projeto com jest

Passo 1: Configuração Inicial
Antes de começar, certifique-se de ter um projeto Node.js configurado. Se ainda não tiver um, você pode criar um novo projeto usando o seguinte comando:
npm init -y
Agora, instale o Jest usando npm:
npm install --save-dev jest
Caso tenha dúvidas sobre como configurar o seu projeto, você pode ler a postagem sobre Como criar sua primeira aplicação em node.js
Passo 2: Estrutura do Projeto
Organize seu projeto para facilitar a execução de testes. Uma estrutura comum pode ser:
meu-projeto/
|-- src/
| |-- funcoes.js
|-- tests/
| |-- funcoes.test.js
|-- package.json
Passo 3: Configuração do package.json
Atualize seu arquivo package.json com a seguinte configuração para permitir a execução fácil de testes:
{
...
"scripts": {
"test": "jest"
}
...
}
Passo 4: Escrevendo Seu Primeiro Teste
Crie um arquivo de teste funcoes.test.js
dentro da pasta tests
:
// funcoes.test.js
const { soma } = require('../src/funcoes');
test('soma dois números', () => {
expect(soma(1, 2)).toBe(3);
});
Passo 5: Implementando Funções
Agora, implemente a função soma dentro de funcoes.js
:
// funcoes.js
function soma(a, b) {
return a + b;
}
module.exports = { soma };
Passo 6: Executando Testes
Execute seus testes usando o comando npm test
.
Jest detectará automaticamente os arquivos de teste e executará os testes. Certifique-se de ver uma saída semelhante a:
PASS tests/funcoes.test.js
✓ soma dois números (x ms)
Passo 7: Cobertura de Código
Jest também pode gerar relatórios de cobertura de código. Atualize o script de teste no package.json para incluir a opção –coverage:
{
"scripts": {
"test": "jest --coverage"
}
}
Execute novamente seus testes e veja o relatório de cobertura gerado no diretório coverage
.
Parabéns! Você configurou com sucesso sua primeira suíte de testes usando Jest. Este é apenas o começo; Jest oferece muitos recursos poderosos para testes avançados, incluindo mocks, snapshots, e muito mais. Explore a documentação oficial do Jest para aprofundar seus conhecimentos e aprimorar suas habilidades de teste.
Para aprender mais sobre todos esses detalhes, você pode consultar a própria documentação do jest , que possui um conteúdo bem amplo e em português.
Até a próxima e bons códigos!

Bacharel em Ciência da Computação pela Universidade Federal do Amazonas, MBA em Gerenciamento de Projetos pela Fundação Getúlio Vargas.
Atualmente trabalha como Gerente de Engenharia na Meliuz.
Com 20 anos de experiência na área, já trabalhou com um pouco de tudo, C, C++, Java, C#, Delphi, Node.js, AWS, PHP, Python, React, Angular, jQuery, e mais um monte de coisa que nem existe mais 😀