用玩笑模拟请求时出现 TypeError

TypeError when mocking request with jest

我对 node 比较陌生,在尝试使用 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"
  }
}

有人知道为什么会这样吗?

在您的测试文件中添加 jest.unmock('request')

当你在 file.In 这种情况下需要某些东西时,Jest 会模拟一个假的 require 对象,请求不是真实的 request.So 告诉 jext 不是模拟请求。