【发布时间】:2011-07-13 11:06:08
【问题描述】:
我正在为进行 AJAX 调用的 JavaScript 编写一些 QUnit 测试。
为了隔离,我覆盖$.ajax 以将 AJAX 调用的参数数组写入变量。这可以测试方法如何使用 AJAX 函数,但我很难测试 $.load() 的成功处理程序
来自http://api.jquery.com/load/的文档:
当检测到成功响应时(即当 textStatus 为“success”或“notmodified”时),.load() 将匹配元素的 HTML 内容设置为返回的数据。
所以我试图返回一个对象,该对象包含与成功处理程序的变量同名的对象:
//Mock ajax function
$.ajax = function (param) {
_mockAjaxOptions = param;
var fakeAjaxSuccess = { responseText: "success", textStatus: "success", XMLHttpRequest: "success" };
return fakeAjaxSuccess;
};
但是这种方法没有奏效。
如何复制成功的 AJAX 调用的行为?
【问题讨论】:
标签: javascript jquery ajax unit-testing testing