Javascript qunit jquery ajax测试,用于始终和完成的回调
我正在尝试测试jQueryAjax请求Javascript qunit jquery ajax测试,用于始终和完成的回调,javascript,jquery,qunit,Javascript,Jquery,Qunit,我正在尝试测试jQueryAjax请求 Widget.seriesEditLoadSeriesAjax = function( id , jqXHRCallbacks ) { var ajax_url = '/dashboard/charts/ajax/2'; var data_obj = { SID : id || 0 , getSeries : true }; var jqxhr
Widget.seriesEditLoadSeriesAjax = function( id , jqXHRCallbacks ) {
var ajax_url = '/dashboard/charts/ajax/2';
var data_obj = {
SID : id || 0 ,
getSeries : true
};
var jqxhr = $.ajax({
url : ajax_url,
type : "GET",
data : data_obj
});
jqXHRCallbacks = jqXHRCallbacks || {
done : Widget.seriesEditLoadSeriesCallback ,
always : function(){
$('#series_loader').hide();
}
};
jQuery.extend( jqxhr, jqXHRCallbacks );
console.log( 'jqxhr.always', jqxhr.always );
console.log( 'jqxhr.done', jqxhr.done );
}
并使用qUnit库为其编写了一个测试
test( "Widget.seriesEditLoadSeriesAjax", function() {
stop();
Widget.seriesEditLoadSeriesAjax( 67,{
done : function(){
ok( true, "asynchronous Success !");
start();
} ,
always : function(){
ok(true, "asynchronous completed PASS!");
start();
}
});
});
但它总是返回结果
asynchronous completed PASS!
为什么它忽略了完成的测试
。请帮忙 将函数修改为
Widget.seriesEditLoadSeriesAjax = function( id , callbacks ) {
var ajax_url = '/dashboard/charts/ajax/2';
var data_obj = {
SID : id || 0 ,
getSeries : true
};
var ajaxSettings = {
url : ajax_url,
type : "GET",
data : data_obj ,
success : Widget.seriesEditLoadSeriesCallback ,
complete : function(){
$('#series_loader').hide();
},
error : function(){
}
};
jQuery.extend( ajaxSettings, callbacks );
var jqxhr = $.ajax( ajaxSettings );
}
并将测试代码更改为
test( "Widget.seriesEditLoadSeriesAjax", function() {
stop();
Widget.seriesEditLoadSeriesAjax( 67,{
success : function( response ){
ok( true, "asynchronous Success !");
} ,
complete : function(){
ok(true, "asynchronous completed PASS!");
start();
}
});
});
成功了 将函数修改为
Widget.seriesEditLoadSeriesAjax = function( id , callbacks ) {
var ajax_url = '/dashboard/charts/ajax/2';
var data_obj = {
SID : id || 0 ,
getSeries : true
};
var ajaxSettings = {
url : ajax_url,
type : "GET",
data : data_obj ,
success : Widget.seriesEditLoadSeriesCallback ,
complete : function(){
$('#series_loader').hide();
},
error : function(){
}
};
jQuery.extend( ajaxSettings, callbacks );
var jqxhr = $.ajax( ajaxSettings );
}
并将测试代码更改为
test( "Widget.seriesEditLoadSeriesAjax", function() {
stop();
Widget.seriesEditLoadSeriesAjax( 67,{
success : function( response ){
ok( true, "asynchronous Success !");
} ,
complete : function(){
ok(true, "asynchronous completed PASS!");
start();
}
});
});
成功了