No puedo burlarme del módulo en broma.
cuando uso el siguiente caso de prueba de código falla
jest.mock("./module", () => ({ method1: jest.fn().mockImplementation(() => "method1"), }));pero cuando uso la función de flecha, el caso pasa.
jest.mock("./module", () => ({ method1: () => "method1", }));¿Hay alguna diferencia entre los dos enfoques o estoy haciendo algo mal?
A continuación se muestra la implementación.
//utils.js export const method1 = () => "method 1"; //App.js import { method1 } from "./utils.js"; export const showMsg = () => method1(); //App.test.js ( Test case fails) import { showMsg } from "./App"; jest.mock("./utils.js", () => ({ method1: jest.fn().mockImplementation(() => "method1"), })); describe("test mock", () => { it("returns the correct value for Method 1", () => { expect(showMsg()).toBe("method1"); }); }); //App.test.js (Test case success) import { showMsg } from "./App"; jest.mock("./utils.js", () => ({ method1: () => "method1", })); describe("test mock", () => { it("returns the correct value for Method 1", () => { expect(showMsg()).toBe("method1"); }); });Gracias por adelantado
Pude resolver el problema. No hubo nada malo con la implementación. Solo faltaba una configuración en el archivo package.json.
"jest": { "resetMocks": false, "restoreMocks": false }