1
resposta

[Dúvida] Função do `.toHaveBeenCalledWith()`

Eu entendi que no minuto 4:24 o instrutor falou que a função .toHaveBeenCalledWith() valida se os parâmetros informados para a função que está sendo espionada possuem aquele valor.

{
  title: "any_title",
  description: "any_description",
  date: "30/06/2024"
}

e Eu entendi que no minuto 4:36 o instrutor falou que a função .toHaveBeenCalledWith() valida o retorno da função que está sendo espionada contém os valores.

Gostaria de entender de confirmar qual está correto? Pois pelo que sei a função .toHaveBeenCalledWith() validaria os parâmetros recebidos são de fato aqueles. Não valida o retorno.

1 resposta

Oi, Felipe! Tudo bem?

Isso mesmo, a função .toHaveBeenCalledWith() do Jest é utilizada para validar se uma função espiada (spy) foi chamada com os parâmetros específicos que esperamos, ela não valida o retorno da função.

Vamos esclarecer com um exemplo prático:

const myFunction = jest.fn();

myFunction('param1', 'param2');

// Verifica se 'myFunction' foi chamada com os parâmetros 'param1' e 'param2'
expect(myFunction).toHaveBeenCalledWith('param1', 'param2');

Neste exemplo, estamos verificando se myFunction foi chamada com os parâmetros 'param1' e 'param2'. O Jest não está validando o retorno de myFunction, apenas os parâmetros com os quais ela foi chamada.

Portanto, de acordo com a explicação da aula, de fato o .toHaveBeenCalledWith() valida se os parâmetros informados para a função que está sendo espionada possuem aquele valor.

Espero ter ajudado!

Um forte abraço e bons estudos!