我正在开发一个 Angular.js 应用程序,它具有扩展 $resource 服务的 RESTful 服务。这个应用程序将来会连接到 Java Spring 应用程序,但现在我正在尝试设置一个隔离的模拟,它将为我的应用程序从客户端提供所有必要的路由。当我使用其他 MV* 框架(例如 Backbone.js)开发其他应用程序时,我之前使用 Sinon.js 创建了一个假客户端服务器,为我的路由提供服务。
看起来,与获取 JSON 数据的“标准”ajax 调用不同,正如 JQuery/Backbone 执行的那样,Angular 以不同的方式使用 XHR,并且它不会被 Sinon 劫持请求并从客户端响应的尝试“愚弄”。
我尝试使用 $httpBackend 来创建带有现成数据的假路由,但似乎该服务仅用于单元测试,而不是用于我需要设置的“暂存环境”。
这就是我的 Sinon 设置的样子,它适用于 JQuery.ajax,但不适用于 Angular $resource 或 $http:
var server = sinon.fakeServer.create();
server.respondWith("GET", /mydata/gi, [200,
{ "Content-Type": "application/json" },
JSON.stringify({
data: "myData"
})
]);
server.autoRespond = true;
关于这如何不适用于 Angular 的任何想法?或者更好的是,有人知道如何为 Angular 应用程序设置这样的模拟吗?