Angular 7 - тестирование кармы не выполняется по HTTP-запросу - PullRequest
0 голосов
/ 21 апреля 2020

TL; DR: Как я могу запустить свой тест на компонентах, у которых есть вызовы к моему API в их методе ngOnInit, без генерации ошибок типа Http failure response for http://localhost:9876/api/locations/: 404 Not Found. (Тестирование без запуска бэкэнда)

Я пытаюсь провести некоторый тест с кармой в своем приложении angular, но я застрял с этого утра ..

Я всегда есть ошибка, которая выглядит следующим образом:

"message": "An error was thrown in afterAll\nUncaught LocationService: 'list' failed (url='null'): an error occurred: Http failure response for (unknown url)

И эта ошибка возникает в нескольких службах, но также и в компонентах, использующих службу.

Я думаю, что ошибка происходит от установленного прокси-сервера (это предупреждение перед ошибкой):

WARN [proxy]: failed to proxy /api/locations/ (connect ECONNREFUSED 127.0.0.1:8080)

При такой конфигурации в karma.conf. js:

"/api/locations/": `http://localhost:8080/api/locations/`

Проблема в том, что мне нужно запустить тест без сервер ..

Мой тест пуст, это файлы по умолчанию, сгенерированные angular:

import { TestBed, inject } from "@angular/core/testing";

import { LocationService } from "./location.service";
import {HttpClientTestingModule} from "@angular/common/http/testing";

describe("LocationService", () => {
  beforeEach(() => {
    TestBed.configureTestingModule({
      imports: [HttpClientTestingModule],
      providers: [LocationService]
    });
  });

  it("should be created", inject(
    [LocationService],
    (service: LocationService) => {
      expect(service).toBeTruthy();
    }
  ));
});

Я только что изменил HttpClientModule на HttpClientTestingModule после этого поста Тестирование кармы в Angular 5. Failed: Http error response

Обратите внимание, что эти ошибки возникают только при запуске задачи Sonar от бамбукового агента, локально у меня такой ошибки нет.

Но у меня все еще есть ошибка, что может Я делаю?

РЕДАКТИРОВАТЬ: при удалении моего прокси-сервера у меня появляется другая ошибка, но это не решает мою проблему:

 "message": "An error was thrown in afterAll\nUncaught LocationService: 'list' failed (url='http://localhost:9876/api/locations/'): an error occurred: Http failure response for http://localhost:9876/api/locations/: 404 Not Found 

Почему тест пытается вызвать веб-сервис?

...