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

90
Vistas
Enrutador de prueba dentro del gancho useEffect

Tengo el siguiente componente.
Buscando probar que el método del enrutador push dentro de useEffect se está llamando con una determinada ruta y búsqueda.

 import React from 'react'; import { compose } from 'redux'; import { withRouter } from 'react-router'; const MyComponent = ({ router: { push, location }, }) => { const version = 'v2'; React.useEffect(() => { push({ pathname: `/${version}/new_path`, search: location.search ? location.search: '', }); }, []); return <div>Sample div text</div> }; const higherOrder = compose( withRouter, aCustomHigherOrderC, ); export default higherOrder(MyComponent);

Esta es la prueba que he escrito para probar que el router se está llamando correctamente.

 import React from 'react'; import { shallow } from 'enzyme'; import MyComponent from '../src/components/MyComponent'; jest.spyOn(React, 'useEffect').mockImplementation(f => f()); const props = { router: { push: jest.fn(), location: { search: '?param=1', }, }, }; describe('MyComponent component tests', () => { it('should work', () => { const render = () => shallow( <MyComponent {...props} /> ); expect(props.router.push).toHaveBeenCalledWith('/v2/new_path?param=1'); }); });

Pero recibo el siguiente error cuando ejecuto la prueba.

Error: expect(jest.fn()).toHaveBeenCalledWith(esperado)

Se esperaba que se llamara a la función simulada con: ["/v2/new_path?param=1"] Pero no se llamó.

Parece que ni siquiera useEffect . Intenté agregar un punto de quiebre allí y no llegué a ese punto de quiebre. ¿Podría obtener algunos consejos sobre lo que estoy haciendo mal y cómo podría probar el enrutador que se llama con la ruta correcta y el parámetro de búsqueda? Gracias.

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