我想强迫
node-fetch
作为一个存根我有点麻烦
开始工作。代码:
const fetchMock = jest.fn();
const {
getArticle
} = require('../../sfpublish/api');
console.log('loaded api')
const A = global.proxyquire('../../sfpublish/api', {
'node-fetch': fetchMock
});
setup.js
以下内容:
global.proxyquire = require('proxyquire');
package.json
以下内容:
"jest": {
"automock": false,
"globalSetup": "./test/__config.js",
"setupFiles": [
"./test/__setup.js"
]
},
结果:
FAIL test/sfpublish/api.test.js
â Test suite failed to run
Cannot find module '../../sfpublish/api'
23 | } = require('../../sfpublish/api');
24 | console.log('loaded api')
> 25 | const A = global.proxyquire('../../sfpublish/api', {
| ^
26 | 'node-fetch': fetchMock
27 | });
它怎么可能无法加载我刚才加载了两行的模块?是
proxyquire
不是在这里使用的正确模块?
我得到了
节点获取
在我的测试中是一个模拟,但是当我在模块中运行函数时
const fetch = require('node-fetch');
在顶部)它将转到真正的模块而不是假的。我试过用fetch嘲笑libs
fetch-mock
无济于事。