我对ReactJs / Typescript项目进行了单元测试,该项目引用了一个名为nock.js的模块,并使用了jest:
import nock from 'nock'
...
afterEach(() => {
nock.cleanAll();
})
当我运行测试时,我在.cleanAll语句中出错:
TypeError: nock_1.default is not a function
但是当我将import语句更改为:
时var nock = require('nock');
问题解决了。我怎样才能使用import而不是require?这是jest配置的问题吗?这是配置:
"jest": {
"transform": {
"^.+\\.(ts|tsx)$": "<rootDir>/node_modules/ts-jest/preprocessor.js"
},
"moduleFileExtensions": [
"ts",
"tsx",
"js"
],
"testRegex": "/__tests__/.*\\.(ts|tsx|js)$"
},
答案 0 :(得分:1)
如果模块具有默认导出,您可以使用:
import nock from 'nock'
但如果它没有默认导出,则需要使用:
import * as nock from 'nock'
答案 1 :(得分:1)
我遇到了同样的问题,并通过在我的tsconfig.json
中添加以下配置来解决此问题:
{
...
"esModuleInterop": true
...
}