Nest 无法解析 (?) 的依赖项。请确保索引 [0] 处的参数在 RootTestModule 上下文中可用

Nest can't resolve dependencies of the (?). Please make sure that the argument at index [0] is available in the RootTestModule context

我尝试 运行 NestJs 测试但出现以下错误

Nest can't resolve dependencies of the (?). Please make sure that the argument at index [0] is available in the RootTestModule context.

此项目正在使用 Mongoose 连接到 MongoDB

您可以通过 运行 此存储库中的代码重现错误 https://github.com/kruyvanna/nestjs-test-error

提前致谢

你会得到这个错误,因为你有以下模块:

const module: TestingModule = await Test.createTestingModule({
  providers: [CatService],
}).compile();

和这个提供者:

@Injectable()
export class CatService {
  constructor(@InjectModel(Cat.name) private catModel: Model<CatDocument>) {}
}

并且无法判断 catModel 的值是多少,因为其提供商令牌未在测试模块中注册。

要解决这个问题,您可以注册它 like the docs show

const module: TestingModule = await Test.createTestingModule({
  providers: [CatService, { provide: getModelToken(Cat.name), useValue: jest.fn() }],
}).compile();