这个错误表示在运行Angular 6和Jest测试时,TestBed不能正确注入所需的参数,因此使用inject方法会失败。解决这个问题的方法是,使用TestBed.overrideProvider方法,手动注入需要的参数。下面是一个示例代码:
beforeEach(() => { TestBed.configureTestingModule({ providers: [ { provide: YourService, useClass: YourServiceStub } ] }); });
it('should call your service method', () => { const service = TestBed.get(YourService); spyOn(service, 'yourServiceMethod'); // 运行你的测试代码 });
在上面的示例中,我们使用TestBed.overrideProvider方法手动注入我们需要的服务,然后在我们的测试中使用TestBed.get方法获取我们所注入的服务。这个方法可以解决这个错误。