我试图在Jest单元测试中,按照Uppy的指导,从乌皮包中模拟这是先前回答的问题。类。我的错误代码如下:
import Uppy from '@uppy/core';
describe('MyComponent', () => {
it('renders', () => {
jest.mock('@uppy/core', () => {
return {
Uppy: jest.fn().mockImplementation(() => {
return {};
}),
};
});
new Uppy();
expect(Uppy).toHaveBeenCalledTimes(1);
});
});以下错误消息导致测试失败:
Matcher error: received value must be a mock or spy function
Received has type: function
Received has value: [Function Uppy]@uppy/core的默认导出似乎是Uppy类,因此我的期望是提供的代码将模拟类的构造函数,但情况似乎并非如此。
包版本:
发布于 2022-05-08 14:13:04
我认为问题在于您在错误的时间使用jest.mock()。换句话说,我认为在测试用例中调用jest.mock()为时已晚,因为那时包已经导入了。
我不知道这样做的标准方法是什么,但这里是如何反应的:
module.exports = {
globalSetup: require.resolve('./setupGlobal.js'),
}/* ... */
const baseConfig = require('./config.base');
module.exports = Object.assign({}, baseConfig, { /* ... */ });
/* ... */所以,我想说,利用这个选项应该可以解决问题。
https://stackoverflow.com/questions/72146821
复制相似问题