НЕ издевается над HttpClient в Angular 6 тестах - PullRequest
0 голосов
/ 04 июня 2018

Я создаю сервис, который загружает и отправляет данные по HTTP, и я создал несколько тестов, которые должны использовать настоящий HttpClient (НЕ насмешливый).

Итак, вот как это выглядит:

describe("My3rdPartyConnectedServiceTests", () => {
  beforeEach(() => {
    TestBed.configureTestingModule({
      imports: [HttpClient],
      providers: [My3rdPartyConnectedService]
    });
  });

  beforeEach(async(() => {
    const http = TestBed.get(HttpClient);

    http.delete("http://localhost:22213/api/somemethod").subscribe(() => {
…
    });
  }));

и тестовый код идет.Но когда я запускаю тесты, я получаю:

Неожиданное значение 'HttpClient', импортированное модулем 'DynamicTestModule'.Пожалуйста, добавьте аннотацию @NgModule.

Итак, как я могу отправлять запросы внутри моих тестов?

PS.Теперь, если вы думаете, что я не должен делать это в тестах, вы ошибаетесьЭти тесты и сервис фактически выполняют некоторую работу, которая включает API REST третьей стороны.

1 Ответ

0 голосов
/ 04 июня 2018

HttpClient является службой и не может быть помещен в массив imports.Вы должны заменить его на HttpClientModule, что обеспечивает HttpClient.

...