jasmine 测试服务 angular - 找不到要监视 getBaseUrl() 的对象
jasmine testing service angular - could not find an object to spy upon for getBaseUrl()
我是 angular 中的 jasmine 单元测试服务的新手,正在尝试实现单元测试服务,该服务具有使用 Observable
作为 return 的简单 get 方法,为此我得到了来自另一个文件的 URL,在这个 ApiEndpointsConfig
中,但由于某种原因,我找不到 getBaseUrl()
,非常感谢任何帮助。这是 stackblitz
的 link
您忘记添加了:
apiEndpoints = TestBed.get(ApiEndpointsConfig);
在 test.service.spec.ts
中的每个 beforeEach
这将解决您的问题。但是你会得到另一个与测试本身相关的错误;)
如果你不能处理另一个,给我打电话
这是因为服务中使用的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');
只有这样你才会有匹配的 urls 并且 expectOne 会成功。
我是 angular 中的 jasmine 单元测试服务的新手,正在尝试实现单元测试服务,该服务具有使用 Observable
作为 return 的简单 get 方法,为此我得到了来自另一个文件的 URL,在这个 ApiEndpointsConfig
中,但由于某种原因,我找不到 getBaseUrl()
,非常感谢任何帮助。这是 stackblitz
您忘记添加了:
apiEndpoints = TestBed.get(ApiEndpointsConfig);
在 test.service.spec.ts
中的每个 beforeEach这将解决您的问题。但是你会得到另一个与测试本身相关的错误;) 如果你不能处理另一个,给我打电话
这是因为服务中使用的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');
只有这样你才会有匹配的 urls 并且 expectOne 会成功。