单元测试时在nestjs中模拟同一模块中的另一个服务

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

尝试在我的应用程序中对服务运行简单的

defined
测试时遇到错误。

{
    const module: TestingModule = await Test.createTestingModule({
       providers: [
            TestingService,
            {
                    provide: Service1,
                    useValue: {}
            },
            {
                    provide: Service2,
                    useValue: {}
            },
            {
                    provide: Service3-in-the-same-module,
                    useValue: {}
            }                
          ]
      }).compile()
}

测试服务构造函数是:

constructor(
        private readonly service1: Service1,
        private readonly service2: Service2,
        private readonly service3: Service3,
        @InjectMetric('metric1')
        private myCounter: Counter<string>
 ) {}

在模块中,两个服务都在提供者数组中:

providers: [TestingService, Service3]

所以TestingService和Service3在同一个模块中,Service3被注入到TestingService中。但我收到错误 Nest 无法解析测试服务的依赖关系(Service1、Service2、?) 我做错了什么?

jestjs nestjs
1个回答
0
投票

如果两个服务位于同一个模块中,并且仍然出现此类错误,则可能与 Service3 的依赖关系有关,这些依赖关系不是 Service3 模块的一部分,或者不是某些导入模块的一部分。 您可以在 https://docs.nestjs.com/faq/common-errors#cannot-resolve-dependency-error

中阅读有关此类错误的更多信息
© www.soinside.com 2019 - 2024. All rights reserved.