我是茉莉花的新手。 我正在尋找一種方法來檢查一個特定節點是否存在於ajax響應中。我正在使用grunt運行jasmine命令行。我能夠在成功調用Ajax後檢查函數是否被調用。我的代碼看起來像這樣。如何用茉莉花測試阿賈克斯反應
describe("Ajax call test.", function() {
it("should execute the callback function on success", function() {
spyOn($, "ajax").and.callFake(function(options) {
options.success();
});
var callback = jasmine.createSpy();
getSampleResponse(callback);
expect(callback).toHaveBeenCalled();
});
function getSampleResponse(callback){
$.ajax({url: "template/sample.json", dataType:"text", success:function(res){
callback();
}
});
}
});
我的sample.json文件看起來像這樣。
{
success: {
"numSearches":5,
"data":[
{title:'search title 1', count:1},
{title:'search title 2', count:1},
{title:'search title 3', count:1},
{title:'search title 4', count:1},
{title:'search title 5', count:1}
]
}
}
我想檢查響應是否包含success.numSearches。我如何使用茉莉花做到這一點。 在此先感謝。
我沒有找到異步ajax回調數據的任何解決方案。所以我試圖像這樣至少得到了被稱爲成功的功能。我能夠通過在$ .ajax中添加async:false來測試ajax調用,這使得該規範等待完成。只是無法找到測試異步ajax響應的方式。 – rajesh
我嘗試了你提到的,但得到了錯誤: 錯誤:callback()方法不存在於file:/// C:/ inetpub/wwwroot/tes tCase/.grunt/grunt-contrib-jasmine/jasmine.js (1) 然後我試着加入window.callback = function(){}; 然後得到這個錯誤。 TypeError:undefined不是一個對象(評估'window.callback.mostRe centCall.args')在file:/// C:/inetpub/wwwroot/testCase/spec/domSpec.js(第50行) 如果你可以嘗試一下,看看它是否適合你,將會非常有幫助。 無論如何,謝謝。 – rajesh
對不起,嘗試新的實現。我錯過了你實際上在回調方法中傳遞 –