【发布时间】:2015-04-24 06:35:56
【问题描述】:
我发现使用 Qunit 测试 jQuery ajax 非常困难。
尤其是在尝试使用 Qunit 的模块构造和 setUp 和 tearDown 方法来减少重复代码时,我感到很困惑。以下作品:
test("ajax request is 200 OK", function () {
var xhr = sinon.useFakeXMLHttpRequest();
var requests = sinon.requests = [];
xhr.onCreate = function (request) {
requests.push(request);
};
var callback_success = sinon.spy();
$.ajax('/course/data', {
success: callback_success,
});
equal(sinon.requests.length, 1);
equal(sinon.requests[0].url, "/course/data");
requests[0].respond(200, { "Content-Type": "application/json" }, '[]');
ok(callback_success.called);
});
我有一个JSFiddle,它显示测试失败(编号 11)。 (我在尝试了解所有内容时编写的早期测试)。
特别是我的问题是:当我在第 115 行的全局范围内声明 var requests; 时,为什么测试报告失败并显示“请求未定义”?
感谢您的解释! (编辑:由于某种原因,链接的 JSFiddle 显示了 sinon.js 的问题,当我从我的小提琴帐户运行 JSFiddle 时并不明显??)
【问题讨论】: