javascript - 如何解决开 Jest 单元测试中的问题?

标签 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

然而,当我将导入语句更改为:

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

最佳答案

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

import nock from 'nock'

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

import * as nock from 'nock'

关于javascript - 如何解决开 Jest 单元测试中的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46524549/

相关文章:

javascript - 如何识别用户从哪个页面登陆到另一个页面?

javascript - 为什么我需要 4 previousSibling 才能获取 2 个前一个元素?

javascript - react 测试渲染器 : Invariant Violation: getNodeFromInstance: Invalid argument

javascript - 使用 React Big Calendar 禁用事件 chop

c# - 单元测试 .NET Core Web 应用程序的正确方法是什么?

unit-testing - 如何断言 Go 测试中的错误类型?

c# - 无法比较单元测试中的列表

javascript - 弹出onselect事件

javascript - 在浏览器调整大小时更改超链接位置

reactjs - 使用事件监听器 keydown 时的 React Hooks 状态问题