我正在使用导出功能的文件的自动模拟,实际文件看起来像
export const serialize = (type:boolean) => (data) => {....}
在调试器中,我可以看到正在测试的模块(控制器)中,serialize
被调用并且是一个模拟。
在我的测试中,我有
import {controller} from '../../src/controller'
import {serialize} from '../../src/serialize'
jest.mock('../../src/serialize');
describe('test', () => {
it('serialize'), (done) => {
controller.put(); //<-- calls serialize
expect(serialize).toHaveBeenCalled(); // <-- this fails, with 0 calls
}
})
答案 0 :(得分:0)
问题在于,在Controller中,调用序列化函数的方式导致将保存在WeakMap中的嘲笑的嘲笑配置从弱映射中删除。因此,我移动了电话,以便GC确实收集了引用。