Mik*_*hum 4 unit-testing typescript jestjs nestjs
当我尝试向我的 NestJs 应用程序添加一些测试时遇到错误。有一个名为app.controller.spec.ts自动生成的测试文件,它是一个单元测试。当我尝试使用纱线测试命令运行测试时,它会抛出一个错误,指出:
测试套件无法运行 TypeError:类扩展值未定义不是构造函数或 null
Run Code Online (Sandbox Code Playgroud)at Object.<anonymous> (../node_modules/@nestjs/testing/services/testing-logger.service.js:7:38) at Object.<anonymous> (../node_modules/@nestjs/testing/testing-module.builder.js:9:34)
我的 tsconfig 配置:
{
"compilerOptions": {
"module": "commonjs",
"declaration": true,
"removeComments": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es2017",
"sourceMap": true,
"outDir": "./dist",
"baseUrl": "./",
"incremental": true,
"skipLibCheck": true
},
"exclude": [
"node_modules",
"./node_modules",
"./node_modules/*",
"./node_modules/@types/node/index.d.ts",
]
}
Run Code Online (Sandbox Code Playgroud)
纱线测试命令:
"test": "jest"
单元测试文件内容:
import { Test, TestingModule } from '@nestjs/testing';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import {ConfigModule} from './config/config.module';
describe('AppController', () => {
let appController: AppController;
beforeEach(async () => {
const app: TestingModule = await Test.createTestingModule({
imports: [ConfigModule],
controllers: [AppController],
providers: [AppService],
}).compile();
appController = app.get<AppController>(AppController);
});
describe('root', () => {
it('should return "pong"', () => {
expect(appController.getHello()).toBe('pong');
});
});
});
Run Code Online (Sandbox Code Playgroud)
您使用@nestjs/testing
的是版本 8,但您使用的是版本 6 上的@nestjs/common
、@nestjs/core
和许多其他@nestjs/
软件包。这些主要版本应该相互匹配。将所有内容升级到 v8,或降级@nestjs/testing
到 v6 以匹配通用包和核心包。
归档时间: |
|
查看次数: |
2792 次 |
最近记录: |