簡體   English   中英

玩笑單元測試中如何解決問題?

[英]How to solve issue in jest unit test?

我有一個針對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": {
    "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'

我遇到了同樣的問題,並通過在tsconfig.json添加以下配置來tsconfig.json

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM