0

我有一个我正在构建的应用程序,就像我在过去几年中构建的大多数应用程序一样,有一个干净的分离:后端的 REST API,前端的 Angular(在那个 Backbone 之前,在那个之前只有 jQuery)。

首次测试时,很容易对 REST API 进行存根;在开发时,我可以做一个静态文件服务器(如 angular-seed's ./scripts/web-server)并放置文件。但在某个时候,我真的需要针对真正的 REST API 进行开发和测试。

在这样一个独立的应用程序的情况下,人们如何构建和启动?过去,我有一个./dev节点脚本可以设置各种测试/开发数据库变量,require('../../server-dev-dir/app.js')但它似乎有点重。有更清洁的方法吗?

测试的同样问题:应用程序确实需要针对真正的 REST API 进行测试,在某个点上,存根和模拟只能提供这么多帮助。

4

1 回答 1

1

在 AngularJS 中,您使用$http服务发出所有 HTTP 请求。测试不是你的工作$http。这是 AngularJS 团队的工作。你关心的只是这个:

您的后端或第 3 方 (API) 后端是否接收到由您的 AngularJS 代码配置$http发送的请求?

为此,AngularJS 提供了$httpBackend模拟。在angular-mocks.js您的测试中加载时,$http将向它发送 HTTP 请求。您可以训练$httpBackend如何响应任何 URL。

您还可以对收到的请求$httpBackend以及与这些请求一起收到的数据进行断言。

于 2013-09-29T10:32:08.240 回答