Mi utilFunction no se está utilizando y agregar el registro a la función de fábrica muestra que nunca se llama. Ya intenté buscar jest.mock que no funciona con rutas relativas y jest.mock no se llama para Typescript pensando que podría estar relacionado con la combinación de pruebas JS y código fuente TS o con las diferentes rutas de módulo utilizadas en la fuente vs código de prueba.
Código que se está probando:
// src/foo/fooModule.ts import { utilFunction } from '../util' export const foo = () => { return utilFunction() }Código de prueba:
// test/fooModule.test.js const { foo } = require('../src/foo/fooModule') jest.mock('../src/util', () => { return { utilFunction: () => 'mocked' }; }); describe('fooModule tests', () => ...)La llamada jest.mock debe moverse por encima de las importaciones:
// test/fooModule.test.js jest.mock('../src/util', () => { return { utilFunction: () => 'mocked' }; }); const { foo } = require('../src/foo/fooModule') describe('fooModule tests', () => ...) Mi última experiencia trabajando con Jest antes de esto fue en un proyecto donde las pruebas también estaban escritas en Typescript y se usaba babel-jest . babel-jest incluye babel-jest-hoist, que eleva los simulacros de broma por encima de cualquier importación automáticamente, por lo que antes no tenía que preocuparme por el pedido.