【问题标题】:HttpClient testing issue: No provider for HttpClient with nested servicesHttpClient 测试问题:没有嵌套服务的 HttpClient 提供者
【发布时间】:2018-01-24 19:21:29
【问题描述】:

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

运行我在网上找到的代码sn-ps是这样的:

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 传递给更深层次的嵌套服务?

【问题讨论】:

    标签: angular angular-httpclient


    【解决方案1】:

    感谢support team at github,我能够通过添加以下内容来解决此问题:

    import 'core-js/es7/reflect';
    

    到我的test.ts 文件。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2019-11-23
        • 2018-04-24
        • 2019-06-25
        • 1970-01-01
        • 1970-01-01
        • 2019-05-15
        • 2019-12-25
        • 2018-03-16
        相关资源
        最近更新 更多