Javascript 茉莉花测试元素是否消失

Javascript 茉莉花测试元素是否消失,javascript,jasmine,Javascript,Jasmine,我正在为以下两个函数编写一些Jasmine测试: var showSpinner = function () { $('#spinner').remove(); $('<div id="spinner"><i class="fa fa-spinner fa-pulse fa-3x fa-fw"></i></div>') .appendTo('body') .hide() .fadeIn

我正在为以下两个函数编写一些Jasmine测试:

var showSpinner = function () {
    $('#spinner').remove();
    $('<div id="spinner"><i class="fa fa-spinner fa-pulse fa-3x fa-fw"></i></div>')
        .appendTo('body')
        .hide()
        .fadeIn();
};

var hideSpinner = function () {
    $('#spinner').fadeOut(function () {
        $(this).remove();
    });
};
第一个测试运行良好。但是,由于隐藏内部的淡出,第二次测试失败

我试图修改它以使用超时

it('hide spinner', function () {
    hideSpinner();
    setTimeout(function () {
        expect($('#spinner').length).toEqual(0);
    }, 100);
});
但这会导致考试通过,但同时警告大家不要抱有任何期望

如何测试此功能?

您应该阅读以下内容:

400毫秒是的默认超时

it('hide spinner', function () {
    hideSpinner();
    setTimeout(function () {
        expect($('#spinner').length).toEqual(0);
    }, 100);
});
it('hide spinner', function(done) {
    hideSpinner();
    setTimeout(function() {
        expect($('#spinner').length).toEqual(0);
        done();
    }, 400);
});