茉莉花测试服务角度 - 找不到要监视的对象以获取 getBaseUrl()

问题描述

我是 angular jasmine 单元测试服务的新手,试图实现单元测试服务,它具有简单的 get 方法,返回 Observable,为此我从另一个文件获取 URL,在此 {{ 1}} 但由于某种原因,我找不到 ApiEndpointsConfig,非常感谢任何帮助。这是 stackblitz

链接

解决方法

您忘记添加:

apiEndpoints = TestBed.get(ApiEndpointsConfig);
 

到 test.service.spec.ts 中的 beforeEach

这将解决您的问题。但是你会得到另一个与测试本身相关的错误;) 如果你不能处理另一个,给我打电话

,

这是因为service中使用的url与expectOne中使用的url不同。要抵消此错误,您可以执行以下操作。将 api-endpoints.config 中的 url 更改为。

 public get getBaseUrl(){
    return 'http://example.com/app/data';
  }

然后将expectOne中的url更改为如下:-

const req = httpMock.expectOne(spy() + '/app/data');

只有这样,您才会有匹配的网址,并且expectOne 才会成功。