Estoy notando un comportamiento extraño con bromas y desestructuración de objetos.
Tengo tres archivos main.js main.spec.js y utils.js
main.spec.js
const utils = require('./utils') const main = require('./main') test('example1', () => { const spy = jest.spyOn(utils, 'myUtil') main.handler(1) expect(spy).toHaveBeenCalledWith(1) }) main.js
const utils = require('./utils') exports.handler = (option) => { if (option === 1) { utils.myUtil(1) } else { utils.myUtil(2) } } utils.js
exports.myUtil = (input) => { console.log(input) } Lo anterior funciona bien. Sin embargo, con un cambio mínimo en main.js , destruir myUtil y llamarlo falla la prueba.
este es el main.js roto (que es lógicamente idéntico)
const { myUtil } = require('./utils') exports.handler = (option) => { if (option === 1) { myUtil(1) } else { myUtil(2) } }¿Alguien puede explicar por qué?
Suponiendo que solo estoy escribiendo el archivo de prueba y no me gustaría cambiar la implementación del archivo main . ¿Cómo puedo espiar una función de objeto destruido?