【发布时间】:2022-02-01 12:16:14
【问题描述】:
我正在尝试为我的 Nestjs 项目编写一个简单的测试,但我一直无法让它工作。
错误信息
Nest 无法解析 UserRepository (?) 的依赖关系。请确保索引 [0] 处的参数 UserModel 在 RootTestModule 上下文中可用。
可能的解决方案:
- 如果 UserModel 是提供者,它是当前 RootTestModule 的一部分吗?
- 如果 UserModel 是从单独的 @Module 导出的,那么该模块是否会导入到 RootTestModule 中? @Module({imports: [ /* 包含 UserModel 的模块 */ ]})
user.service.spec.ts
beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
imports: [MongooseModule.forRoot(process.env.MONGO_URI)],
providers: [
UserService,
UserRepository,
{
provide: User.name,
useValue: MongooseModule.forFeature([
{ name: User.name, schema: UserSchema },
]),
},
],
}).compile();
userService = module.get<UserService>(UserService);
});
user.service.ts
@Injectable()
export class UserService {
constructor(private readonly userRepository: UserRepository) {}
}
user.repository.ts
@Injectable()
export class UserRepository {
constructor(@InjectModel(User.name) private userModel: Model<UserDocument>) {}
}
【问题讨论】:
标签: node.js typescript mongoose nestjs