如何在角度4项目中模拟JSON响应以进行测试

时间:2017-07-22 10:45:46

标签: angular mocking

我想用所有模拟JSON来运行我的应用程序,以避免Web服务的依赖。什么是在本地模拟JSON的理想方式,这样只需要很少的更改而不是调用实际的服务,它应该从本地文件获得响应。我有一个文件夹,我保存所有我的模拟JSON文件。

2 个答案:

答案 0 :(得分:0)

我过去常常像保存本地JSON文件一样进行模拟。但是问题是您只能使用GET方法,而不能使用其他HTTP方法(例如post或put)。我最终使用了https://www.mocky.iohttps://www.owllang.com之类的网站 模拟我的API。这样,在我的代码中,我只需要更改URL,并且所有内容都相同。我也可以使用任何我想要的HTTP方法。希望有帮助。

答案 1 :(得分:-1)

我在我的应用中使用了以下方法:创建一个名为“API”的文件夹,其中包含JSON文件。每个JSON文件代表一个http.get调用。

示例:

在您的API服务中,创建名为mock的数据成员:

private mock = false;

假设您有一个API来接收人员列表。将实际响应复制到JSON文件(例如people.JSON)并将其保存在模拟数据文件夹中,如api

如果您想在不访问真实API数据的情况下运行应用,请将mock设置为true;

private mock = true;

功能:

getPeopleList() : Observable<any> {
    var endpoint = this.myEndpoint; // Your real API url

    if(this.mock) {
      endpoint = '/api/people.json';
    }

    return this.http.get(endpoint)
      .map(this.extractData)
      .catch(this.handleError);
}

希望这就是你的意思。