2013-07-20 20 views
1

我正在做一個非常簡單的xhr模擬示例,並且需要設置返回成功的能力(在這個特定示例中我也無法使用庫)。如何在每次使用後清除ajaxSetup?

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

除(而不是如我所料1),如果我把它叫做3次,最後集成測試我使用這個回報中3周不同時間我正在上面做的偉大工程。是否可以調用它並清除它或在測試之間重置它?

更新

這裏是我結束了

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

回答

0

如果你只需要假阿賈克斯成功響應,可以隨時僞造它(see this question):

var fakeResponse; 

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

您只需要在對象調用$ .ajax之前設置fakeResponse,它將調用對象的success功能。

+0

甚至在將$ .ajaxSetup()放入我的設置或拆卸(QUnit)後,當單個測試運行並且生產代碼直接點擊$ .getJSON時,我會看到多個日誌。 (上面顯示在我的問題) –

+0

有沒有更好的方法來實現這一目標?我只需要在生產代碼中執行$ .getJSON時僞造xhr的成功(以及可以在測試之間安全地重置的東西)? –

+0

我編輯答案涵蓋簡單的ajax嘲笑 – mor

相關問題