我正在尝试对具有依赖项的打字稿类进行单元测试,如下所示:
在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/**/*"
]
}
我在这里做错了什么?