Wie mock/stub-callback-Funktion mit sinon.js?

Möchte ich schreiben unit-tests mit QUnit und Sinon.Js. Ich habe eine Anwendung, wo der Benutzer kann auf eine Schaltfläche klicken und ein modales Dialogfeld appers zu behandeln, das herunterladen von Dateien. Die Benutzer können das Dialogfeld schließen, und es wird eine Methode zum ausführen zurücksetzen einiger Variablen. Mein test-code:

$(function() {
    $.fn.copy_button = function(){};

    ln_download_view = new DownloadModalView();
    ln_download_view.modal = {'modal': function() {}};
    var download_modal_dialog = $('.download-modal');
    download_modal_dialog.modal = function(param){};
    var modal_mock = sinon.mock(ln_download_view.modal);
    var download_modal_dialog_mock = sinon.mock(download_modal_dialog);

    //Should be inserted, because ln_download_view.modal is mocked
    //The close button even handler
    $('#btn_close_modal').click(function(){
        download_modal_dialog.modal('hide');
    });

    //Dirty stuff to do after the window closes
    //Basicly the click triggers this event handler
    $('.download-modal').on('hide',function() {
        window.clearInterval(window.periodicalTimer);
    });

    $('div .option-container').click(function() {
        if(!$(this).hasClass("selected-option"))
        {
            $('div #option-presenting').toggleClass("selected-option");
            $('div #option-editing-and-presenting').toggleClass("selected-option");

            $('.image').toggle();
        }
    });

    module("views");
    test("Download modal dialog is displayed", function(){
        var modal_triggered = modal_mock.expects("modal").once();
        ln_download_view.handleDownloadClick();
        ok(modal_triggered.verify());
    });

    test("Download modal dialog is closed",function(){
        var modal_triggered = download_modal_dialog_mock.expects("modal");
        $('#btn_close_modal').trigger('click');
        ok(modal_triggered.verify());
    });
});

Was ich nicht verstehe ist, wie kann ich testen/mock/stub dieses Stück code:

$('.download-modal').on('hide',function() {
    window.clearInterval(window.periodicalTimer);
});

Habe ich nicht das Tiefe Verständnis noch.

InformationsquelleAutor boli | 2013-08-14

Schreibe einen Kommentar