角度模拟服务中的语法错误

时间:2018-05-16 11:36:43

标签: angular mocking

我有一个原始服务(角度为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()进行一些小修改只是为了让它构建,我得到的是仍然调用原始而不是模拟。尽管前面提到过改变模块,但是我指示模拟在所有原始用途的地方使用。

2 个答案:

答案 0 :(得分:1)

来自httpClient的实际HttpClientHttpClientModule吗?如果是这样,我认为您可以返回x而不是of(x),因为get()已经返回Observable

答案 1 :(得分:0)

问题在于从模拟中定义API:

const x = <MyComplexObject[]> (require('..//stubs/myJSONFile.json'));
return Observable.of(x);

现在可行。