Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

126
Vistas
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 la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda