我对节点相对较新,并且在尝试使用jest模拟request
时遇到问题。
如果我要测试的文件有require('request')
,并且我尝试运行npm test
,则会收到此错误:
FAIL __tests__/sum-test.js (0.291s)
● sum › it adds 1 + 2 to equal 3
- TypeError: The super constructor to `inherits` must have a prototype.
at Object.exports.inherits (util.js:756:11)
at Object.<anonymous> (node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/private-key.js:44:6)
at Object.<anonymous> (node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/utils.js:16:18)
这是我的package.json,如果有帮助的话:
{
"name": "jesttest",
"version": "1.0.0",
"scripts": {
"test": "jest"
},
"devDependencies": {
"jest-cli": "^12.0.2"
},
"dependencies": {
"request": "^2.72.0"
}
}
任何人都知道为什么会发生这种情况?
答案 0 :(得分:4)
在测试文件中添加jest.unmock('request')
。
当你需要文件中的某些内容时,Jest会模拟一个假的require对象。在这种情况下,请求不是真正的请求。所以告诉jext不是模拟请求。