1

我正在做一个非常简单的 xhr 模拟示例,并且需要能够设置返回成功(在这个特定示例中我也不能使用库)。

  function fakeHttpRequest(json) {                                                      
    $.ajaxSetup({
      complete: function() {
        this.success.call(this, json);
      }
    });
  }

我在上面所做的工作很好,除了如果我调用它 3 次,我使用它的最后一个集成测试会返回 3 个不同的时间(而不是我预期的 1 个)。是否可以在测试之间调用它并清除它或重置它?

更新

这是我最终得到的

function fakeHttpRequest(json) {
   jQuery.ajax = function(opts) {
     opts.success(json);
   }
}
4

1 回答 1

0

如果您只需要伪造 ajax 成功响应,您可以随时伪造它(请参阅此问题):

var fakeResponse;

$.ajax = function( options ) {
  options.success( fakeResponse );
}

您只需要在对象调用 $.ajax 之前设置 fakeResponse,它就会调用对象的success函数。

于 2013-07-20T20:26:26.010 回答