【问题标题】:How to solve issue in jest unit test?如何解决开玩笑单元测试中的问题?
【发布时间】:2018-03-13 11:13:28
【问题描述】:

我有一个 ReactJs/Typescript 项目的单元测试,该项目引用了一个名为 nock.js 的模块,并使用了 jest:

import nock from 'nock'
...

afterEach(() => {
   nock.cleanAll();
})

当我运行测试时,我在 .cleanAll 语句中收到错误:

TypeError: nock_1.default is not a function

但是,当我将导入语句更改为:

var nock = require('nock');

问题解决了。我怎样才能仍然使用 import 而不是 require ?这是玩笑配置的问题吗?这是配置:

"jest": {
    "transform": {
      "^.+\\.(ts|tsx)$": "<rootDir>/node_modules/ts-jest/preprocessor.js"
    },
    "moduleFileExtensions": [
      "ts",
      "tsx",
      "js"
    ],
    "testRegex": "/__tests__/.*\\.(ts|tsx|js)$"
  },

【问题讨论】:

标签: javascript reactjs unit-testing typescript jestjs


【解决方案1】:

如果一个模块有默认导出,你可以使用:

import nock from 'nock'

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

import * as nock from 'nock'

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,并通过将以下配置添加到我的tsconfig.json 来修复它:

    {
    ...
    "esModuleInterop": true
    ...
    }
    

    【讨论】:

      猜你喜欢
      • 2020-03-25
      • 1970-01-01
      • 2019-09-15
      • 2017-10-01
      • 2018-09-10
      • 2021-02-05
      • 1970-01-01
      • 2019-07-04
      • 1970-01-01
      相关资源
      最近更新 更多