我刚刚发现了mockjax库,它似乎几乎完美适合我的测试需求。我说“差不多”,因为有一件事我似乎无法模拟:$.ajaxPrefilter
处理程序。
通常在jQuery中你可以指定:
$.ajaxPrefilter(function() {
doSomethingOnEveryAjaxCall();
});
然后每当有人使用$.ajax
(或$.get
,$.post
等)时,都会调用doSomethingOnEveryAjaxCall
函数。
但是,如果我这样做:
$.mockjax({url: '/test', responseText: 'test'});
$.ajax({url: '/test'});
我设置的预过滤器(doSomethingOnEveryAjaxCall
)没有被调用。
有没有办法修改该代码,以便即使在mockjax请求/响应中也可以调用前置过滤器?
答案 0 :(得分:1)
事实证明mockjax 能够触发ajax预过滤器...我只是忘了提供所有必要的标题,以使我的预过滤器实际触发。一旦我尝试使用正确的标题,预过滤器就会按预期触发!