Entendi como implementar, mas não entendi qual o beneficio ao implementar essa funcionalidade
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Entendi como implementar, mas não entendi qual o beneficio ao implementar essa funcionalidade
Olá, Marllon! Tudo bem?
A funcionalidade do SPY é muito útil quando queremos verificar se uma função foi chamada, quantas vezes ela foi chamada, e com quais argumentos. Isso é especialmente útil em testes unitários e de integração, onde queremos isolar as funções e ter certeza de que elas estão funcionando como esperado.
No exemplo dado na aula, o instrutor criou um SPY para o método 'request' do objeto 'requisição'. O que isso faz é criar um "espião" que vai acompanhar todas às vezes que o método 'request' for chamado durante o teste.
Depois de fazer a requisição, o instrutor usa o método 'toHaveBeenCalled' do espião para verificar se o método 'request' foi realmente chamado. Isso é útil porque, se o método 'request' não for chamado, sabemos que há algo errado com o nosso código.
Além disso, o Jest oferece uma série de outros métodos que você pode usar com o espião, como 'toHaveBeenCalledTimes' (para verificar quantas vezes a função foi chamada) e 'toHaveBeenCalledWith' (para verificar com quais argumentos a função foi chamada).
Aqui está um exemplo prático:
// Suponha que temos a seguinte função em nosso código
function soma(a, b) {
return a + b;
}
// Em nosso teste, podemos criar um espião para essa função
const spy = jest.spyOn(global, 'soma');
// Agora, quando chamamos a função soma, o espião vai acompanhar
soma(1, 2);
// Podemos verificar se a função foi chamada
expect(spy).toHaveBeenCalled();
// Podemos verificar quantas vezes a função foi chamada
expect(spy).toHaveBeenCalledTimes(1);
// E podemos verificar com quais argumentos a função foi chamada
expect(spy).toHaveBeenCalledWith(1, 2);
Lembre-se, a ideia principal é que o SPY permite que você tenha um controle mais granular sobre suas funções durante os testes, o que pode ajudar a identificar problemas e garantir que seu código esteja funcionando corretamente.
Espero que isso esclareça a funcionalidade para você.
Bons estudos!