我无法嘲笑工作。如果我提供一个只是方法调用的模拟实现,它就可以工作。但是,如果我用模拟回调实现替换它,它就会停止工作。我做错了什么?
// Module.js
export default class Module {
static navigate(payload, callback) { ... }
}
// setupJest.js
jest.mock('../src/Module', () => ({
navigate: jest.fn(console.log('test')) // works great
navigate: jest.fn((payload, callback) => { callback() } ) // does NOT work
}));
答案 0 :(得分:0)
console.log('test')
工作的唯一原因是因为它在您定义模拟时执行,而不是在调用navigate()
时执行。
只要您确定您的代码正在调用navigate()
(我不确定),那么您就不需要jest.fn()
。
jest.mock('../src/Module', () => ({
navigate(payload, callback){
console.log('is this really running?')
callback();
})
}));