Nestjs如何通过mongodb依赖到user.module.ts单元测试



我正在尝试对模块进行测试。文件,以增加覆盖率。这是我的模块文件:

import { Module, MiddlewareConsumer, NestModule } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
import { UserService } from './user.service';
import { UserController } from './user.controller';
import { UserSchema } from './schemas/user.schema';
import { Eauth } from './middlewares/eauth.middlewares';
import { HttpModule } from '@nestjs/axios';
@Module({
imports: [
MongooseModule.forFeature([
{
name: 'User',
schema: UserSchema,
},
]),
HttpModule,
],
controllers: [UserController],
providers: [UserService],
})
// // Register Eauth middleware
export class UserModule implements NestModule {
configure(consumer: MiddlewareConsumer) {
consumer.apply(Eauth).forRoutes(UserController);
}
}

这是我的user.module. specs .ts文件内容:

import { Test } from '@nestjs/testing';
import { UserModule } from './user.module';
describe('ThingsModule', () => {
it('should compile the module', async () => {
const module = await Test.createTestingModule({
imports: [UserModule],
}).compile();
expect(module).toBeDefined();
});
});

这是我收到的错误:

● ThingsModule › should compile the module
Nest can't resolve dependencies of the UserModel (?). Please make sure that the argument DatabaseConnection at index [0] is available in the MongooseModule context.
Potential solutions:
- If DatabaseConnection is a provider, is it part of the current MongooseModule?
- If DatabaseConnection is exported from a separate @Module, is that module imported within MongooseModule?
@Module({
imports: [ /* the Module containing DatabaseConnection */ ]
})

这是什么意思?据我所知,我需要注入猫鼬模型依赖。我说的对吗?如果是,我如何注入缺失的依赖项?

问题是,在module.spec.ts文件中,userMoudule依赖项被导入为imports,而不是应该导入的providers。原因是

规范文件现在的样子:

import { Test } from '@nestjs/testing';
import { UserModule } from './user.module';
describe('UserModule', () => {
it('should compile the module', async () => {
const module = await Test.createTestingModule({
providers: [UserModule],
}).compile();
});
it('should be defined', () => {
expect(module).toBeDefined();
});
});

最新更新