QUnit测试为什么返回错误值

问题描述

我具有以下功能:

MarketingHandler = function () {
    return {
        Init: function () {

                $(document).on("click","#verify .modal-close",function () {
                    tryVerification();
                });


        }

    }

    function tryCommunicationPreferencesInterceptorAfterVerification() {
        var overlayIsNotDismissed = CookieHelper.GetCookie("dismissed-overlay") == null

        if (overlayIsNotDismissed && window.location.pathname === "/Home/") {
            OverlayHelper.Display("save-preferences");
        }
        else if (overlayIsNotDismissed) {
            // do something else 
        }
    }
}();

$(document).ready(function () {
    MarketingHandler.Init();
});

我正在尝试编写一个测试,表明应该在OverlayHelper.Display("save-preferences");处被调用。这是我的尝试:

QUnit.test("Test",function (assert) {
    MarketingHandler.Init();
    if (CookieHelper.GetCookie("dismissed-overlay") != null) {
        CookieHelper.DeleteCookie("dismissed-overlay");
    }

    sinon.stub(window.location,'pathname').returns("/Home/");
    var displayOverlaySpy = sinon.spy(OverlayHelper,'Display');

    var $fixture = $("#qunit-fixture");
    $fixture.append(HTMLInjector());
    $('#verify .modal-close').click();

    assert.ok(displayOverlaySpy.calledOnceWith("save-preferences"),"overlay shown");
    displayOverlaySpy.restore();
});

function HTMLInjector() {
    return "<input type='hidden' id='verify .modal-close'/>"
}

但是,我在测试中得到“预期为真,结果为假”。有人可以在这里发现我出问题了吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)