2013-05-07 39 views
4

我的角应用程序通过REST API与我的服务器进行通信。我想嘲笑这个API来快速开发前端。如何在AngularJS中模拟后端?

有两种方法我看到:

  1. 使用ngMockE2E $httpBackend。这就要求:

    • 旋转了一个简单的静态文件服务器(例如python -m SimpleHTTPServer
    • 负载角mocks.js在我的客户
    • 配置模拟$httpBackend回到我想要的东西。

    缺点:必须有客户端逻辑来决定是否使用模拟后端。另外,不要模拟实际的$ httpRequests,我们可能会与所有的flush()调用混淆。

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

    缺点:?

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

回答

0

只需在您的index.html旁边创建一个.json文件。请您的$http请求获取包含后端返回数据的此json文件。这是模拟后端的最简单方法。当然,我假设你正在通过Web服务器服务你的角度应用程序。如果你还没有运行网络服务器,那么这个解决方案将无法工作。

在生产中,你可以用实际的REST结束点替换这个json文件的url。

+1

谢谢,但那不会让我测试不同类型的响应(403,502等)。 – 2013-05-20 23:11:50

+0

你能举个例子吗?! – svarog 2014-11-26 09:04:04

0

我有类似的问题,我开始用ganaraj建议的一个简单的.json文件,但当我需要测试数据修改时,转移到一个简单的node.js服务器。

ngMockE2e实际上用于测试,并不是为实际用作RESTful服务器而设计的。在您提供的链接的例子中,如果您要为特定的手机运行GET,则必须通过手机数组循环查找所需的手机。

0

类似的问题回答了here

基本上你包括后角角嘲笑,并使用在this gist 提供的代码和你将能够CONTROLL请求和响应,包括标头和假响应延迟等

0

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