用Dojo XHR模拟AJAX调用
我试图模拟dojo xhr请求的响应,但还没有找到好的解决方案 理想情况下,我希望看到一个类似于jQuery的解决方案,我可以根据url设置特定的调用,例如:用Dojo XHR模拟AJAX调用,dojo,Dojo,我试图模拟dojo xhr请求的响应,但还没有找到好的解决方案 理想情况下,我希望看到一个类似于jQuery的解决方案,我可以根据url设置特定的调用,例如: $.mockjax({ url: '/restful/fortune', responseTime: 750, responseText: { status: 'success', fortune: 'Are you a turtle?' } }); 我最初的想法是利用“/dojo/io/send”通
$.mockjax({
url: '/restful/fortune',
responseTime: 750,
responseText: {
status: 'success',
fortune: 'Are you a turtle?'
}
});
我最初的想法是利用“/dojo/io/send”通道,但在修改dojo延迟对象之后,我还无法获得要加载的修改响应
另一种想法是使用传递方法来确定是否应发出实际的xhr请求,例如:
function xhrRequest(xhrArgs) {
if(shouldMock) {
var fakeReturnJson = dojo.toJson({
howdy: "that's odd!",
isStrange: false
});
return fakeReturnJson;
} else {
dojo.xhr(xhrArgs);
}
}
有人能告诉我模仿dojo xhr调用的最佳方法吗
谢谢 我还没有听说过任何类似于Mockjax的特定于Dojo的库。但我认为您可以尝试将Mockjax与Dojo结合使用。这应该很容易做到,因为您所要做的就是在开发过程中只使用JQuery进行Mockjax测试,然后在开发完成后将其删除。我使用您的第二个建议。目前,我有一个传输层(简单js类)和两个实现(XhrTransport和MockTransport)。然后在不更改小部件代码的情况下切换所需的位置。 小部件通过以下方式调用服务器:
Controller.send(aServerCall);
其中,aServerCall是一个具有服务器端点、参数和回调的简单值对象
通过这种方式,您可以向控制器添加适用于所有服务器调用(如日志记录、分析、一般错误处理…)的好东西,并且在进行单元测试时模拟整个服务器。
对于MockTransport,我只是以小部件所期望的格式从静态.js文件返回固定的json数据。这是一个老问题,但我认为您应该使用 但是,您需要将以下内容:
has: { native-xhr2: false }
为了让它在1.8版中运行,我开始使用sinon来帮助嘲弄和间谍。我确实在jquery Mockjax版本的基础上推出了一个自主开发的模拟解决方案,但它在API中肯定不如sinon的XHR模拟解决方案那么可靠。