Javascript qunit jquery ajax测试,用于始终和完成的回调

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

我正在尝试测试jQueryAjax请求

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();
        }
    });

});
成功了