1

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!

のテストを省略した理由done。助けてください !

4

1 に答える 1

1

関数をに変更しました

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

});

機能した !

于 2013-03-12T15:50:29.357 に答える