如何解决开玩笑单元测试中的问题?

时间:2017-10-02 11:24:23

标签: javascript reactjs unit-testing typescript jestjs

我对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)$"
  },

2 个答案:

答案 0 :(得分:1)

如果模块具有默认导出,您可以使用:

import nock from 'nock'

但如果它没有默认导出,则需要使用:

import * as nock from 'nock'

答案 1 :(得分:1)

我遇到了同样的问题,并通过在我的tsconfig.json中添加以下配置来解决此问题:

{
...
"esModuleInterop": true
...
}
相关问题