Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

129
Visualizações
Jest.fn() pasó como argumento de función que se esperaba llamar, pero muestra 0 llamadas

EDIT 2: Ver los comentarios a continuación

Estoy intentando escribir algunas pruebas para una función de middleware, pero no sé cómo escribirla para que .toHaveBeenCalled() coincida con la cantidad esperada de llamadas (en este caso, 1) en lugar de 0 llamadas. Actualmente creo una variable dentro de la prueba para simular un objeto de respuesta rápida y la paso a la función que estoy probando:

índice.ts

 const doSomething = async (req, res) => { .... axios(options) .then((response) => { const data = response.data; ... res.status(200); res.send(); .... }

índice.prueba.ts

 const sampleResponse = { status: jest.fn(), send: jest.fn(), json: jest.fn(), } as unknown as Response; ... await doSomething(sampleRequest, sampleResponse); expect(sampleResponse.status).toHaveBeenCalled();

Jest muestra las líneas con res.status(200) y res.send() como están cubiertas en el informe de cobertura.

He leído algunos hilos en los que este error tiene que ver con instancias diferentes/distintas de funciones simuladas que se crean al ejecutar la prueba; es ese el caso aquí? ¿Quizás debería estar probando algo completamente diferente (la función actualmente no devuelve nada)?

Editar :

Me he centrado en tratar de probar un efecto secundario; Siento que estoy cerca, pero todavía recibo 0 llamadas para esta prueba también. Sospecho que es el mismo problema con respecto a las referencias/instancias.

índice.ts

 import Foo from './foo.ts'; const doSomething = async (req, res) => { .... axios(options) .then((response) => { const data = response.data; ... // getInstance() looks for an instance and creates one if not defined Foo.getInstance().doFooThings(); }) .... }

índice.prueba.ts

 import Foo from './foo.ts' ... const fooMock = jest.spyOn(foo.prototype,'doFooThings').mockImplementation(() => Promise.resolve(console.log('hi'))); await doSomething(req, res); expect(fooMock).toHaveBeenCalled(); // still says 0 calls, but 'hi' is getting console logged... ...
about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda