Iniciando com Jest: Parte 1 - Configuração

Image for post
Image for post

Esse é o primeiro artigo de uma série em que abordaremos como testar o nosso código javascript utilizando a biblioteca Jest. Nesse primeiro artigo prepararemos o nosso ambiente, desde a instalação do Nodejs até a configuração do Jest em nosso projeto.

  • Iniciando com Jest: Parte 1 - Configuração

Antes de botar a mão na massa, falaremos um pouco sobre o Jest e porque utilizá-lo.

Jest é uma biblioteca desenvolvida pelo Facebook que fornece uma estrutura completa para desenvolvimento de testes. Se você já teve a oportunidade de fazer testes javascript, sabe o quão trabalhoso é configurar uma stack de testes no seu projeto. Podemos escolher entre diversas opções, algumas das bibliotecas mais conhecidas são: Karma, Jasmine, Instalbul, Chai, Mocha, Sinon, etc…

Esse foi um dos principais motivos pelo qual o Jest se popularizou, ele nos permite executar testes sem configurar nada. Por padrão o Jest executa todos os arquivos *.spec.js, *.spec.jsx, *.test.js e *.test.jsx e todos os arquivos *.js e *.jsx dentro de pastas __tests__.

Além disso, nós também não precisamos de integrações com outras bibliotecas para criar mocks, spies e coverage de código. Tudo é disponibilizado por ele!

Dentre essas vantagens, não podemos esquecer dos testes de snapshots.

O Jest nos permite gerar um arquivo que representa o estado atual de um determinado componente ou estrutura de dados e realiza a comparação do estado novo com o gerado previamente. Caso ocorra alguma alteração nesse arquivo ele nos avisará e mostrará o que foi alterado.


Agora que já sabemos os pontos positivos, chegou o grande momento!

Executaremos alguns comandos nessa etapa de configuração. Criei o snippet abaixo com todos os comandos utilizados para facilitar o acompanhamento:

O primeiro requisito é instalar o Nodejs em nossa máquina. Para isso, basta acessar o site https://nodejs.org/en/ e escolher a opção de download de acordo com o seu sistema operacional. No meu caso, estou utilizando Ubuntu 18.04.

Para verificar se tudo foi instalado corretamente, abra o seu terminal/prompt e execute os comandos abaixo:

Image for post
Image for post

Com o Nodejs instalado, podemos criar o nosso projeto. Como utilizaremos esse projeto nos próximos artigos, irei versionar o código aqui.

A primeira coisa a fazer na criação de um projeto é definir o package.json, assim podemos configurar suas dependências. Para isso, basta executar o comando npm init.

Image for post
Image for post

Agora que já criamos o nosso package.json, instalaremos o Jest como dependência de desenvolvimento.

Image for post
Image for post

NodeJs configurado na máquina, projeto criado e Jest instalado… Falta pouco! Nessa última etapa, nós criaremos em nosso package.json scripts para executar o Jest.

Nós criaremos três scripts test, test:watch e test:coverage. O script test será responsável por chamar o jest sem passar argumentos, já o script test:watch faz com que o jest fique escutando por alterações em nossos arquivos e por fim, o test:coverage executará todos os nossos testes gerando um relatório detalhado de quais arquivos estão cobertos de testes.

Configurar scripts é uma tarefa bem simples, basta abrir o nosso package.json, criar a seção “scripts”(caso não exista), escrever o nome do script e quais instruções serão executadas quando o script for chamado.

Image for post
Image for post

Para concluir essa primeira etapa, chamaremos o script test para verificarmos se o Jest está configurado corretamente em nosso projeto.

Image for post
Image for post

Assim que executamos esse comando, o Jest nos informa que não encontrou testes e exibe a configuração padrão dele. A configuração testMatch exibe uma regex utilizada para encontrar os arquivos que são testes e a testPathIgnorePatterns nos diz quais patterns são ignorados na hora de executar os testes.

Espero que vocês tenham gostado dessa primeira etapa e percebido o quão fácil é aplicar o Jest em um projeto. No próximo artigo nós criaremos o primeiro teste com Jest e desbravaremos as funções disponibilizadas por sua API.


Exactaworks

We are an agile team of digital product engineering with…

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store