HttpClient 测试问题:没有提供嵌套服务的 HttpClient 的提供者

HttpClient testing issue: No provider for HttpClient with nested services

我在 Angular 4 中从 Http 升级到 HttpClient 时遇到问题。我有一个嵌套引用 HttpClient 的服务。我的结构如下所示: 我的 TokenHandlerService 注入 MyHttpService 注入 Angulars HttpClient

运行 我在网上找到的代码片段是这样的:

let service: TokenHandlerService;
let httpMock: HttpTestingController;

beforeEach(() => {
    TestBed.configureTestingModule({
        imports: [
            HttpClientModule,
            HttpClientTestingModule
        ],
        providers: [
            TokenHandlerService,
            MyHttpService
        ]
    });
    httpMock = TestBed.get(HttpTestingController);
    service = TestBed.get(TokenHandlerService);
});

我想测试 TokenHandlerService,但是 运行 我总是以这样的方式结束 Error: No provider for HttpClient!.

如何将模拟的 HttpClient 传递给更深层的嵌套服务?

您可以尝试从 import 语句中删除 HttpClientModule 吗?

因为我们已经为我们的测试模块添加了 HttpClientTestingModule

感谢 support team at github 我能够通过添加来解决这个问题:

import 'core-js/es7/reflect';

到我的 test.ts 文件。