我有一个 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 - 我只是不知道在哪里或如何导入。
我相信你还没有关闭你的});在编译语句之后。