NullInjectorError: Нет поставщика для HttpClient - PullRequest
0 голосов
/ 31 января 2019

Я тестирую угловой сервис, который использует Apollo и graphql, я получаю Нет провайдера для HttpClient! Ошибка, даже если я добавляю HttpClientTestingModule в импорт ..

rules.spec.ts

import { PlatformGraphQLService } from 'platform-graphql'
import { TestBed, ComponentFixture } from '@angular/core/testing'
import { RulesService } from './rules.service'
import {
  ApolloTestingModule,
  ApolloTestingController
} from 'apollo-angular/testing'
import { async } from '@angular/core/testing'
import { HttpClientTestingModule } from '@angular/common/http/testing'
import { Apollo, ApolloModule } from 'apollo-angular'

describe('RulesService', () => {
  let controller: ApolloTestingController
  beforeEach(() => {
    TestBed.configureTestingModule({
      imports: [
        ApolloTestingModule,
        HttpClientTestingModule,
      ],
      providers: [
        PlatformGraphQLService,
      ],
    })
    controller = TestBed.get(ApolloTestingController)
  })

  it('should be created', async(() => {
    const service: RulesService = TestBed.get(RulesService)
    expect(service).toBeTruthy()
  }))


})

Ответы [ 2 ]

0 голосов
/ 22 мая 2019

Вам также необходимо импортировать HttpClientModule.Клиенту Apollo нужен этот модуль для предоставления HttpClient.

0 голосов
/ 01 февраля 2019

Обычно, достаточно ApolloTestingModule.Я делаю то же самое в своей статье о тестировании Apollo https://medium.com/@sergeyfetiskin/testing-apollo-graphql-in-your-angular-application-595f0a04aad3, и я делаю то же самое в своей повседневной работе.

Необходимость HTTPClient может быть вызвана не самим Apollo, а некоторыми вашими услугамикоторый использует это напрямую.Поэтому проверь, какой сервис им пользуется, и смейся над этим сервисом.

Я немного удивлен, что HTTPClientTestingModule не помогло, но повторюсь, это не связано с Аполлоном.

...