Estoy escribiendo algunas pruebas unitarias para mi backend de Node usando jest y sigo teniendo el mismo problema. Tengo un archivo de prueba, digamos logic.test.js , que prueba la funcionalidad de logic.js . logic.js consta de dos funciones: dataRequestFunction y logicFunction , donde logicFunction utiliza dataRequestFunction para recuperar algunos datos con una solicitud HTTP y luego realiza algún tipo de manejo de datos.
Quiero simular la funcionalidad de dataRequestFunction para poder controlar lo que se devuelve, para saber que logicFunction opera con los datos correctos. Lo que he hecho hasta ahora es usar jest.requireActual , como el siguiente
jest.mock('./logic', () => ({ ...jest.requireActual('./logic'), dataRequestFunction: jest .fn() .mockImplementation(() => ({ data: 'someData' })) })) Luego importo logicFunction como de costumbre. Quiero usar logicFunction en el archivo de prueba, por ejemplo expect(logicFunction()).toEqual('somedata') (digamos que el trabajo de la función lógica está capitalizando el resultado de (await dataRequestFunction()).data) . ¿Cómo logro esto? Con esta implementación, logicFunction llama a la versión no simulada de la función; sin embargo, si llamo a dataRequestFunction explícitamente en el archivo de prueba, se devuelve ({ data: 'someData' }) .