javascript – 使用Sinon.js为Angular.js应用程序设置RESTful后端模拟

前端之家收集整理的这篇文章主要介绍了javascript – 使用Sinon.js为Angular.js应用程序设置RESTful后端模拟前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在开发一个Angular.js应用程序,该应用程序具有扩展$resource服务的RESTful服务.这个应用程序将来会连接到Java Spring应用程序,但是现在我正在尝试设置一个独立的模拟器,它将从客户端为我的应用程序提供所有必要的路由.我之前使用过Sinon.js创建了一个虚假的客户端服务器,当我使用其他MV *框架(如Backbone.js)开发其他应用程序时,它服务于我的路由.

看起来,与JQuery / Backbone执行的“标准”ajax调用获取JSON数据不同,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应用程序设置这样的模拟?

最佳答案
我相信“e2e” (end to end) $httpBackend mock正是你想要的.

引用文档:
“对于适用于端到端测试或无后端开发的虚假HTTP后端实现,请参阅e2e $httpBackend mock.”

“与单元测试相反,在端到端测试场景中或在开发应用程序且使用模拟替换真实后端api的情况下,通常需要某些类别的请求绕过模拟和发出真实的http请求(例如,从网络服务器获取模板或静态文件).“

我还发现了good article描述了在Angular中使用假后端的一些优雅方法.

猜你在找的JavaScript相关文章