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

133
Vistas
La broma no se burla de las funciones correctamente.

Así que tengo un módulo llamado A con dos funciones:

 function handleCreatedOrder(){
 console.log("here")
}

function acquireOrder(){
 if(condition) handleCreatedOrder
}

Tengo una prueba que necesita verificar si se está llamando a handleCreatedOrder. Me he burlado del módulo importando primero el módulo import * as acquireOrderWrapper from './module'

Luego, en la prueba, estoy espiando el módulo let handleCreatedOrderSpy = jest.spyOn(acquireOrderWrapper, "handleCreatedOrder")

Cuando intento afirmar expect(handleCreatedOrder).toBeCalled() falla porque el número de llamadas recibidas no coincide. Entiendo que esto se debe a que la burla no es adecuada ya que se llama a console.log de handleCreatedOrder pero la declaración de expectativa falla. ¿Qué estoy haciendo mal?

Mis pruebas son actualmente como

 describe("handle acquireOrder success responses", () => {
 const reactRedux = { useDispatch, useSelector }
 const useDispatchMock = jest.spyOn(reactRedux, "useDispatch")

 test("test1", async () => {
 let handleCreatedOrderSpy = jest.spyOn(acquireOrderWrapper, "handleCreatedOrder")
 await acquireOrder()
 expect(handleCreatedOrderSpy).toBeCalled()
 }
almost 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Creo que lo que debe hacer es crear un espía en la función handleCreatedOrder primero y luego llamar a la función adquirirOrder dentro de su prueba.

Luego, se llamará al espía una vez que ejecute la función adquirirOrder y su prueba debería pasar. Por lo general, desarrollo mi interfaz con angular y typescript, pero para reactJS debería verse similar.

 test('test if function was called', async () => {
 jest.spyOn(component, 'handleCreatedOrder').mockImplementation();
 await acquireOrder();
 expect(component.handleCreatedOrder).toHaveBeenCalled();
}

es posible que deba agregar un detector de cambios en su prueba después de ejecutar la función adquirirOrder. En typescript, generalmente agrego fixture.detectChanges después de ejecutar la función como esta

 fixture.detectChanges();

También noté que falta () después de su función.

 function acquireOrder(){
 if(condition) handleCreatedOrder()
}
almost 4 years ago · Santiago Trujillo Denunciar
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