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
文件。
我在 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
文件。