Testes de javascript parametrizados usando Jest
Você já se pegou escrevendo diferentes casos de teste para testar a mesma funcionalidade para variar apenas as variáveis que está usando em seu teste?
Os testes parametrizados são usados para executar novamente o mesmo caso de teste, mas em condições diferentes a cada execução. Isso torna o teste mais fácil de manter e evita duplicações.
Mas como eu uso isso com o Jest?
Os globais Jest vêm com um método nomeado eachque permite que seu teste seja executado novamente, usando dados diferentes a cada vez.
Este método pode ser usado passando uma tabela, que será passada para sua função de teste e usada dentro do corpo do seu teste.
Vamos supor que você tenha uma função add e precise testá-la com diferentes valores, para poder passar para a tabela listas de valores a serem usados e o resultado esperado ao usar esses valores.
test.each([
[[1, 2], 3],
[[50, 51], 101],
[[10, 25], 35],
])('adds %i and expects %i', (numbers, result) => {
const [firstNumber, secondNumber] = numbers
expect(add(firstNumber, secondNumber)).toEqual(result)
})
test.each([
{first: 1, second: 2, result: 3},
{first: 50, second: 51, result: 101},
{first: 10, second: 25, result: 35},
])('adds $first and $second and expects $result', ({ first, second, result }) => {
expect(add(firstNumber, secondNumber)).toEqual(result)
})
Você também pode usar todos os outros métodos jest com seu teste parametrizado, como test.only.eachou test.skip.each.
Uma observação final é que, se você estiver usando uma versão do Jest anterior a 23.x, precisará instalar um pacote npm chamado jest-each que permite escrever um caso de teste basicamente da mesma maneira que temos com uma versão mais recente do Jest .





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)