我想从一个对象模拟一个函数帖子。我是这样做的:
jest.mock('../../apis.js', () => {
return () => {
return {
post: jest.fn(() => {
console.log('POST was called !');
return Promise.resolve();
}),
};
};
});
Run Code Online (Sandbox Code Playgroud)
然后,我提出我的要求:
const apis = require('../../apis');
Run Code Online (Sandbox Code Playgroud)
最后我调用我的服务,它将调用模块中的post()函数apis:
client.doPost()
.then(() => {
console.log('count: ', apis().post.mock.calls.length);
expect((apis().post)).toBeCalled();
});
Run Code Online (Sandbox Code Playgroud)
该doPost()函数调用了模拟的post()('POST was called !' 消息被打印)但是count is equal to 0并期望失败。