Executando verificação de segurança...
4

Começando com Testes Automatizados Utilizando Jest + React ⚛️

Sabemos que as etapas tradicionais do desenvolvimento das funcionalidades de um software são, em primeiro lugar, estudar as regras de negócio, depois levantar uma solução que atenda os requisitos, para, em seguida, implementar o código.

Antes de subir para produção, o(a) desenvolvedor(a) faz os testes manuais para assegurar que tudo está conforme o planejado. Embora isso seja uma boa prática, não é maneira mais segura e rápida de se realizar testes em uma aplicação, afinal, testes manuais estão totalmente atrelados ao julgamento humano, e pessoas podem errar; e dependendo da complexidade de uma funcionalidade, não há espaço para erros, principalmente quando isso pode afetar negativamente o cliente.

Uma forma de garantir segurança as regras de negócio na aplicação é utilizar ferramentas que façam testes automatizados, otimizando ainda mais o tempo e aumentando a velocidade e a confiabilidade no projeto.

Para quem trabalha com as stacks JavaScript, uma ótima ferramenta é o Jest, a qual é altamente recomendada para utilizar com React, mas também é compatível com Angular, Vue, Node e muito mais.

CONFIGURANDO O AMBIENTE

Como este artigo trata-se de utilizar o Jest com o React, o primeiro passo é você já ter instalado na sua máquina o Node e no seu repositório criar uma aplicação React.js, a partir do comando:

npx create-react-app my-app

*Para evitar possíveis bugs, recomendo fortemente que remova o arquivo App.test.js antes de continuar

Agora para instalar o Jest basta colar o trecho abaixo no terminal

npm install --save-dev jest

Entretanto, o Jest sozinho não consegue compreender o React, para isso, ele precisa de um Transcompilador JavaScript, que no caso, será o Babel.js. Utilize o seguinte comando:

npm install --save-dev babel-jest @babel/core @babel/preset-env

E você ainda precisará adicionar um arquivo na pasta raiz do projeto chamado babel.config.js, que deverá conter as linhas de código abaixo:

module.exports =\
    presets: [['@babel/preset-env', {targets: {node: 'current'}}]],\
  };{

Feito tudo isso, você irá precisar de um comando para rodar no terminal sempre que precisar testar a sua aplicação. Então vá para o arquivo package.json, adicione em scripts:

"test": "jest"

a estrutura deve ser semelhante à imagem abaixo

PRIMEIROS PASSOS COM O JEST

Após realizar todas as etapas de configuração para que seu projeto funcione com o Jest, vamos escrever um teste hipotético para uma função de soma de dois números. Portanto, o primeiro passo é você criar um arquivo chamado soma.js, e adicionar a função:

export default function soma(a, b) {\
    return a + b;\
}

Em seguida, basta criar um arquivo que conterá o nosso teste, que chamaremos de soma.test.js e adicionar o trecho abaixo:

import soma from './soma'

test(`Somar dois números`, () => {\
    expect(soma(1,2)).toBe(3);\
})'

No código acima, estamos importando o arquivo soma.js, e logo em seguida iniciamos o teste; o primeiro parâmetro será uma string que resume o objetivo do teste, que no caso é a soma de dois números, logo em seguida abrimos uma função anônima, e utilizamos os métodos expect() e toBe() para testar se 1 + 2 é igual a 3;

Agora para verificar o seu teste, rode o comando npm test no terminal, e o resultado deverá ser esse:

E para saber mais sobre tudo que o Jest consegue testar, vou deixar o link direto para a documentação oficial

Caso você tenha gostado, pretendo postar muitos conteúdos relacionados a testes automatizados, então vejo você no meu próximo artigo!

Veja mais conteúdos como esse no meu Blog: https://giuliaamaral.com.br/?ref=tabnews

Carregando publicação patrocinada...
1

Gostei muito de como você abortou o tema.

Uma outra ferramenta que gosto muito relacionada a test é o Selenium IDE que é um extensão que você instala no Chorme onde você escrever seu test Front-End e depois de escrito pode rodar quantas vezes quiser, funciona como se fosse uma automação de preenchimento de formularios e cliques em botões do site.

Já me salvou muito essa ferramenta para quando temos que implementar um sistema de test automatizado em uma empresa que nunca fez test em seus projetos.

1

Uma coisa importante se você estiver usando o node-ts e o ts-jest é usar a seguinte configuração:

 "ts-jest": {
    "isolatedModules": true
  }

Eu estava enfrentando um problema de performance absurdo nos testes, toda vez que rodava a suite, meu computador travava, a suite não iniciava e era uma situação dificil. Depois de um tempo pesquisando eu achei essa configuração e resolveu meu problema. A suite passou de 800mb de heap em cada test pra apenas 80mb e nunca mais travou.