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
Почему тест пытается вызвать веб-сервис?