Como Criar Um Teste Com Jest

Você já precisou criar alguma função no Javascript e no momento em que estava desenvolvendo, tudo funcionava perfeitamente!

Mas em um determinado momento de seu projeto, você reparou que o retorno daquela função, estava diferente do que esperado!
Você agora precisa corrigir e entender onde quebrou e o porquê!

Você conseguiria evitar isso, caso tivesse coberto aquele caso de uso, com um teste!

Você sabe como fazer teste de uma função com o Jest? Vou ensinar como é fácil fazer um teste básico com Jest!

Instalações necessárias

Antes de começarmos a mexer no nosso teste em si, devemos instalar algumas dependências, que são:

  • Jest
  • babel-jest

Então, em seu terminal, execute o comando:

1
yarn add --dev jest
1
yarn add --dev babel-jest @babel/core @babel/preset-env

Criação e alteração de arquivos para o teste

Primeiramente, devemos criar o arquivo babel.config.js, na raiz do projeto, com a seguinte configuração:

1
2
3
4
5
6
7
8
9
10
11
12
13
// babel.config.js
module.exports = {
presets: [
[
'@babel/preset-env',
{
targets: {
node: 'current',
},
},
],
],
};

E agora, devemos adicionar nosso script de teste, no arquivo package.json
Dentro de seção script, adicionamos nosso “test”:

1
2
3
4
5
{
"scripts": {
"test": "jest"
}
}

Feito toda essa configuração, vamos agora criar um teste onde queremos verificar a soma de dois números.
Criemos então o arquivo soma.js, que é onde está a nossa função que desejamos testar:

1
2
3
4
5
const soma = (a, b) => a + b;

export {
soma
}

E agora iremos criar o nosso teste em si mesmo!
Crie um arquivo chamado soma.test.js

1
2
3
4
5
6
7
8
9
import {
soma
} from './soma.js'

describe('Cálculo de dois numero', () => {
test('1 + 2 igual 3', () => {
expect(soma(1, 2)).toBe(3);
});
})

Pronto! Seu teste está pronto para ser testado!
Vamos testar então o nosso primeiro teste com Jest?

Executando o seu teste

Em seu terminal, execute o comando yarn test ou npm run test, e deve retornar a seguinte mensagem:

1
2
3
PASS  ./sum.test.js
Cálculo de dois numero
✓ adds 1 + 2 to equal 3 (5ms)

Perfeito! Seu teste está rodando e melhor, passou!

Quer entender mais sobre o que é teste de software? Neste post falamos sobre esse assunto tão importante!