我正在编写一些 QUnit 测试,测试 JavaScript 代码中的 AJAX 调用。
为了隔离测试,我覆盖了 $.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 调用行为?
{state: ƒ, always: ƒ, catch: ƒ, pipe: ƒ...}
。 - Toskan