如何解决将jQuery升级到3.x后,链接Ajax调用失败
我正在一个非常老的项目中,使用以下框架进行单元测试: QUnit 1.14.0, 诗乃1.17.2, jQuery 1.12.4
此单元测试可与jQuery 1.x和2.x一起正常使用。但是升级到3.x后,出现错误requests[1] is undefined
,这意味着第二个AJAX调用未捕获。我读了3.0 doc,似乎3.0有了一个Deferred的新版本,它的行为已更改为类似于本机Promise对象。但是我不确定这会如何破坏测试。
function doSomething(successCallback,failureCallback) {
var promise = firstCall()
.then(secondCall);
if (successCallback) {
promise.done(successCallback);
}
if (failureCallback) {
promise.fail(failureCallback);
}
return promise;
}
function firstCall() {
return $.ajax({
url: 'No1.aspx',type: 'HEAD'
});
}
function secondCall() {
return $.ajax({
url: 'No2.aspx',type: 'GET'
});
}
QUnit.test('correct sequence of AJAX calls',function (assert) {
var server = this.sandbox.useFakeServer();
doSoemthing(this.successHandler,this.failureHandler);
// Simulate successful responses to the two expected AJAX requests
server.requests[0].respond('success');
server.requests[1].respond('success');
assert.equal( 1,"1","dummy" );
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。