4

我的 Angular 应用程序通过 REST API 与我的服务器通信。我想模拟出这个 API 来快速开发前端。

我看到有两种方法:

  1. 使用ngMockE2E $httpBackend。这需要:

    • 启动一个简单的静态文件服务器(例如python -m SimpleHTTPServer
    • 在我的客户端中加载 angular-mocks.js
    • 配置模拟$httpBackend以返回我想要的。

    缺点:必须有客户端逻辑来确定是否使用模拟后端。此外,它不会模拟实际的 $httpRequests,我们可能会对所有的 flush() 调用感到困惑。

  2. 创建一个实际的模拟后端。例如,启动一个非常基本的 node.js 服务器,它将响应实际的xhr 请求。

    缺点:?

ngMockE2e $httpBackend 似乎是其他人正在使用的,但我不知道为什么。拥有一个真实的(模拟)后端似乎更直接,并且在开发时不太可能导致错误。

4

4 回答 4

0

我遇到了类似的问题,我按照 ganaraj 的建议从一个简单的 .json 文件开始,但是当我需要测试数据修改时,我转向了一个简单的 node.js 服务器。

ngMockE2e 真正用于测试,而不是为实际用作 RESTful 服务器而设计。在您提供的链接的示例中,如果您要为特定电话运行 GET,则必须遍历电话数组以找到所需的电话。

于 2013-05-08T14:54:12.553 回答
0

只需.json在您的index.html. $http请求获取包含后端返回数据的 json 文件。这是模拟后端的最简单方法。当然,我假设您通过 Web 服务器为您的 Angular 应用程序提供服务。如果您尚未运行 Web 服务器,则此解决方案将不起作用。

在生产中,您可以将此 json 文件的 url 替换为实际的 REST 端点。

于 2013-05-08T14:07:33.487 回答
0

这里回答了一个类似的问题。

基本上,您在 angular 之后包含 angular-mocks,并使用此 gist中提供的代码 ,您将能够控制请求和响应,包括标头和假响应延迟等。

于 2013-12-03T12:06:06.030 回答
0

对于后端模拟的另一种更自动化的方式,看看swagger-api-mock与rest-json一起工作得很好。这些模块一起可用于生成 $httpBackend 响应:rest-json.js 作为对 json 数据的类 http 访问和 swagger-api-mock/lib/mock-data.js 作为基于 swagger 的 json 模拟数据对象的生成器(或 json 模式)定义

于 2015-07-03T21:49:13.233 回答