TL; DR: 我如何在通过ngOnInit方法调用了我的API的组件上运行测试,而不会产生Http failure response for http://localhost:9876/api/locations/: 404 Not Found
类型的错误。 (在不运行后端的情况下进行测试)
我正在尝试对我的角度应用程序进行业力测试,但是从今天早上开始我就被困住了。。
我总是有一个看起来像这样的错误:
"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(); } )); });
我刚刚在这篇文章Karma testing in Angular 5. Failed: Http failure response之后将HttpClientModule更改为HttpClientTestingModule。>
请注意,这些错误仅在我从竹子代理启动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
为什么测试试图调用Web服务?
TL; DR:如何在通过ngOnInit方法调用了我的API的组件上运行测试,而不会为http:// localhost:9876 / api / locations /:404 Not生成Http故障响应类型的错误。 ..