Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 如何使Sinon Fake服务器响应某些路由,而不是所有路由_Backbone.js_Sinon - Fatal编程技术网

Backbone.js 如何使Sinon Fake服务器响应某些路由,而不是所有路由

Backbone.js 如何使Sinon Fake服务器响应某些路由,而不是所有路由,backbone.js,sinon,Backbone.js,Sinon,是否可以设置Sinon Fake Server以响应某些路由,例如/产品,但不响应/订单 我的场景是:我没有使用Sinon Fake Server进行单元测试,我想在API尚未为应用程序的给定区域准备好的情况下伪造服务器。我希望应用程序在所有情况下都调用真正的服务器,但当它调用/products时,我希望sinon为我响应它 我可以将对Sinon的引用临时添加到产品页面,直到获得真正的API,然后将其删除,但理想情况下,我希望将所有这些与真正的实现隔离开来。现在,我的main.js文件上有一个U

是否可以设置Sinon Fake Server以响应某些路由,例如/产品,但不响应/订单

我的场景是:我没有使用Sinon Fake Server进行单元测试,我想在API尚未为应用程序的给定区域准备好的情况下伪造服务器。我希望应用程序在所有情况下都调用真正的服务器,但当它调用/products时,我希望sinon为我响应它

我可以将对Sinon的引用临时添加到产品页面,直到获得真正的API,然后将其删除,但理想情况下,我希望将所有这些与真正的实现隔离开来。现在,我的main.js文件上有一个UseFakeServer标志,用于确定sinon是否打开。我的假服务器有一个RespondWith列表,但是如果在那里没有找到路由,我会得到一个404,而不是尝试去真正的服务器。fake server AutoRespond设置为true

不确定这是否有什么不同,但我在前端使用主干


谢谢

假设您通过HttpXMLRequest执行API请求,并且至少使用Sinon 1.3.0,那么您应该使用Sinon.useFakeXMLHttpRequest,然后您就能够过滤哪些请求应该伪造

使用Sinon.JS进行实体模型或部分集成/功能 在测试中,您可能希望伪造一些请求,同时允许其他请求 转到后端服务器。过滤
FakeXMLHttpRequest
s(Sinon 1.3.0中新增),您可以

FakeXMLHttpRequest.useFilters
defaultfalse。当设置为true时,Sinon 如果某些请求应该是“未绑定的”,将检查添加的筛选器

FakeXMLHttpRequest.addFilter(fn)
添加一个将决定 或者不要伪造请求。当xhr.open打开时,将调用过滤器 调用,使用完全相同的参数(方法、url、异步、用户名、, 密码)。如果筛选器返回true,则不会伪造请求

例如,您希望所有对/产品的请求不由Sinon处理

sinon.FakeXMLHttpRequest.useFilters = true;
sinon.FakeXMLHttpRequest.addFilter(function(method, url, async, username, password) {
    return /\/products/g.test(url);
});