Entendi como implementar, mas não entendi qual o beneficio ao implementar essa funcionalidade
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!