NestJS 单元测试中出现“express_1 未定义”错误

问题描述 投票:0回答:1

我有一个 NestJS 应用程序,可以将文件上传到 Cloudinary a.o。 - 控制器方法直接来自 NestJS 文档,并且运行完美。

  import { Express } from 'express';
  ...
  ...
  @Post('/upload/image')
  @UseInterceptors(FileInterceptor('file'))
  uploadImage(@UploadedFile() file: Express.Multer.File,
              @Request() request: any) {
    return this.cloudinaryService.uploadFile(file, {
      environment: request.query.environment,
      domain: request.query.domain,
      path: request.query.path,
      name: request.query.name,
    });
  }

但是,依赖于上述模块的模块中的每个单元测试(Jest)都会失败,并出现以下错误:-

  ● Test suite failed to run

    ReferenceError: express_1 is not defined

      40 |   @UseInterceptors(FileInterceptor('file'))
    > 42 |   uploadImage(@UploadedFile() file: Express.Multer.File,
         |                                     ^
      43 |               @Request() request: any) {
      44 |     return this.cloudinaryService.uploadFile(file, {
      45 |       environment: request.query.environment,

      at Object.<anonymous> (src/modules/apps/bbb/controllers/bbb.controller.ts:42:37)
      at Object.<anonymous> (src/modules/apps/bbb/bbb.module.ts:3:1)
      at Object.<anonymous> (src/modules/apps/amethyst/amethyst.module.ts:19:1)
      at Object.<anonymous> (src/modules/apps/amethyst/providers/ccc.service.spec.ts:7:1)

我的单元测试设置如下所示 - 我所看到的相关内容是我正在导入包含的模块

  beforeEach(async () => {
    const module: TestingModule = await Test.createTestingModule({
      imports: [
        SharedModule,
        MailModule,
        AmethystModule,
        BbbModule      <<<<<
      ],
      providers: [],
    }).compile();

由于我的应用程序运行完美并且我的单元测试失败,我假设我在测试设置中遗漏了一些东西。感觉好像我应该在某个地方导入 Express 或 MulterModule - 我只是不知道在哪里或如何导入。

node.js express unit-testing nestjs multer
1个回答
0
投票

我相信你还没有关闭你的});在编译语句之后。

© www.soinside.com 2019 - 2024. All rights reserved.