1
resposta

função pura

No caso do nosso codigo, temos uma chamada de uma funçaõ shuffle, e ela sempre retorna um resultado diferente em cada chamada, pois faz o embaralhamento, posso então considerar realizarSorteio() como uma função impura ? também poderia citar em quais cenários eu posso utilizar os testes (além de funções puras), pois fiquei com duvida de quando posso ou não utiliza-lo.

1 resposta

Oi, Guilbert, tudo bem?

Sobre a função realizarSorteio():

Realmente a função realizarSorteio() não pode ser considerada uma função pura, pois ela depende da função shuffle() que gera um resultado aleatório a cada chamada. Contudo, é possível testar a função realizarSorteio() de maneira eficaz. Para isso, basta fornecer uma lista de participantes fixa e verificar se o resultado do sorteio atende aos requisitos, neste caso, cada participante não pode sortear a si mesmo.

Cenários para utilizar testes:

Além de funções puras, os testes podem ser aplicados a diversos outros cenários, como:

  • Funções que interagem com APIs externas: é possível criar mocks para simular as respostas da API e testar o comportamento da função.
  • Componentes React: é comum testar se os componentes renderizam corretamente, se os eventos são disparados corretamente, etc.
  • Lógica de negócio complexa: mesmo que a função não seja pura, é possível testá-la fornecendo entradas conhecidas e verificando se o resultado é o esperado.

A ideia é testar o comportamento esperado da sua aplicação, independentemente da pureza da função. Então, no caso da função realizarSorteio(), você pode criar testes que verifiquem se o resultado do sorteio atende aos requisitos, mesmo que a função não seja pura. Isso ajudará a garantir o correto funcionamento da sua aplicação.

Caso queira aprender mais sobre testes recomendo a leitura do artigo Escrevendo testes automatizados com React e TypeScript.

Espero ter ajudado. Caso tenha dúvidas, conte com o fórum. Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!