O que é um teste?
Um teste é um trecho de código, que quando executado chama a funcionalidade a qual quer testar e submete ela a um cenário com parâmetros e retornos totalmente controlados por você. Assim você consegue entender como o seu código se comporta em diferentes cenários e como trata-lós, dessa forma trazendo uma qualidade e segurança muito maior para o seu código.
Exemplo prático
Vamos considerar a função abaixo. Uma função que recebe dois números e retorna a soma entre eles.
// index.js
function soma(n1, n2) {
return n1 + n2;
}
Abaixo um exemplo de um arquivo de teste para a função acima
//index.test.js
const soma = require('./index.js');
describe('Function soma', () =>; {
it('Quando eu passar 5 e 5 a função deve me retornar 10', () =>; {
const resultado = soma(5, 5);
expect(resultado).toBe(10);
});
it('Quando eu passar 2 números negativos o resultado deve ser um número negativo', () =>; {
const resultado = soma(-10, -5);
expect(resultado).toBe(-15);
});
});
Podemos ver que a primeira coisa a ser feita é importar a função que iremos testar. Em seguida nós temos uma função chamada 'describe'. Vamos entender o que essa função faz, primeiramente ela recebe 2 parâmetros, uma string e uma função de callback. Essa string é usada para destacar um conjunto de testes a qual ela se refere, nesse caso a função de soma que foi importada. O callback serve para declararmos os casos de teste que são representados por cada 'it' no código. A função 'it' funciona da mesma forma que a função 'describe' ela recebe uma string e uma função de callback como parâmetro. A string serve para sabermos qual é o caso de teste em questão e a função de callback para podermos montar o nosso teste.
Vamos falar sobre o primeiro caso de teste. Nele eu passo o número 5 nos 2 paramêtros da função e pego o resultado na constante resultado. E a mágia dos testes acontece na linha seguinte onde eu faço:
expect(resultado).toBe(10);
O que isso significa? Que eu espero(expect()) que a constante resultado seja igual a 10(toBe()). E caso esteja certo o teste irá passar. caso contrário irá aparecer um erro como na imagem abaixo:
E com o feedback desse teste no terminal, nós iremos entender qual será o próximo passo no desenvolvimento do código.
Link para o stack blitz com exemplo
A biblioteca usada para rodar os testes é o jest. Para executar os testes basta rodar no terminal o comando jest
ou npm test
Muito obrigado por ler 🙃
Top comments (0)