用Jest在打字稿中进行单元测试

时间:2020-06-29 09:54:45

标签: typescript jestjs ts-jest

我正在尝试对具有依赖项的打字稿类进行单元测试,如下所示:

在collect.test.ts中...

import CollectAssets  from "../../src/collect/assets.collect";

  
it('works', async ()=>{

expect(await CollectAssets.collect().toBeTruthy()
  })

在assets.collect.ts ...中

import * as util from '../utils/utils';


const debug = util.debugGenerator('Collect assets')
export default class CollectAssets extends Collect {

    static async collect(
        pageContext: PageContext
    ): Promise<SA.Traces.CollectAssetsTraces | undefined> {}

在utils.ts中...

import * as Debug from 'debug';

export function debugGenerator(namespace: string): Debug.IDebugger {
const debug = Debug(`${namespace}`);
return debug;

}

但是,在开玩笑时,它会因错误而无法运行:

TypeError:util.debugGenerator不是函数

>  8 | const debug = util.debugGenerator('Transfer collect')

我的tsconfig.json配置文件是:

{
"compilerOptions": {
  "rootDir": "./src",
  "outDir": "./build",
  "target": "es2016",
  "lib": ["es2017", "dom"],
  "module": "commonjs",
  "moduleResolution":"Node",
  "types": [
    "node",
    "jest"
  ],
  "strict": true,
  "inlineSourceMap": true,
  "noImplicitReturns":true,
  "declaration": true,
  "skipLibCheck":true,
},
"include": [
    "./src/**/*"
]

}

我的package.json是:

    "devDependencies": {
    "@types/jest": "^26.0.0",
    "jest": "^26.1.0",
    "ts-jest": "^26.1.1",
    "typescript": "^3.8.3",

  },
      "jest": {
        "setupFilesAfterEnv": [
          "<rootDir>/test/config/setup.js"
        ],
        "transform": {
          "^.+\\.tsx?$": "ts-jest"
        },
        "testRegex": "/test/.*\\.test\\.ts$",
        "moduleFileExtensions": [
          "ts",
          "js",
          "json"
        ]
      }

我将其扩展到一个有趣的ts配置文件中:

{
"extends": "../../tsconfig.json",
"include": [
    "../../test/**/*"
]

}

我在这里做错了什么?

0 个答案:

没有答案