我有一个原始服务(角度为5),API返回Observable。
我需要创建一个名为ServiceStub的类似模拟服务。 在模拟中,我提供了这个API定义(与原始相同的签名),但是从本地json文件中读取:
public myAPI(): Observable<CompleObject[]> {
const x = this.httpClient.get('..//stubs/myJsonFile.json');
return Observable.of(x) // syntax error here
}
所以在提供原始服务的模块中,我替换了这一行:
OriginalService
(在providers数组中)
{ provide: OriginalService, useClass: ServiceStub },
运行应用程序,对模拟中的myAPI()进行一些小修改只是为了让它构建,我得到的是仍然调用原始而不是模拟。尽管前面提到过改变模块,但是我指示模拟在所有原始用途的地方使用。
答案 0 :(得分:1)
来自httpClient
的实际HttpClient
是HttpClientModule
吗?如果是这样,我认为您可以返回x
而不是of(x)
,因为get()
已经返回Observable
。
答案 1 :(得分:0)
问题在于从模拟中定义API:
const x = <MyComplexObject[]> (require('..//stubs/myJSONFile.json'));
return Observable.of(x);
现在可行。