Angular 7-Karma测试失败,HTTP请求

问题描述 投票:0回答:1

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故障响应类型的错误。 ..

angular unit-testing sonarqube karma-jasmine karma-runner
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.