Se você quiser me acompanhar, o boilerplate inicial é o tdd-playground, que terminei de configurar em posts passados.
Nesse primeiro teste, nos certificaremos que ela é uma função, através do método `toBeInstanceOf` do Jest.
O que faz sentido, pois ainda não declaramos a função.
🎉 1ª etapa desse ciclo cumprida com sucesso: criamos um teste que falha e o 👉vimos👈 falhar.
A 3ª etapa, Refactoring, ainda não faz sentido até aqui. Escrevemos muito pouco código para pensar em refatorar agora.
O plano é que essa função receba um número por parâmetro e, dentro dela, faça algum processo que retorne o fatorial desse número.
Então vamos escrever um 2º teste para checar se quando a função `getFactorial` é invocada, recebendo o número 3 por argumento, 👉6👈 é retornado.
De acordo com o teste que escrevemos, o Jest esperava receber 6, mas recebeu `undefined`.
Isso faz sentido, afinal a função `getFactorial` não está retornando um valor.
Até aqui, escrevemos um "dumb test" que apenas retorna o valor que especificamos como o esperado.
Vamos testar novamente a função, especificando outro valor de output.
Afinal, não faz sentido implementarmos outro "dumb test", fazendo a função retornar 24, o teste anterior que escrevemos quebraria.
Vou explicar para você, o passo a passo de como podemos implementar esse código utilizando primeiramente a forma típica, imperativa.
👉Retweeta👈 essa thread!
Linkei o início dela ali
em baixo, para facilitar =)
Te vejo na próxima 🔥