2

我正在尝试编写 Jasmine 测试来涵盖 Twitter Boostrap 模式对话框。当调试器行被注释掉时,测试失败。它在调试器暂停处理时通过,我继续。我相信 Bootstrap 模态中的转换导致了这个问题,因为在我期望调用时模态对话框还没有在 DOM 中。

如何在测试期间禁用转换?

谢谢

describe("test dialog", function(){
    it("when cancel button is clicked", function() {
        spyOn(MyTestObj, 'myMethod')

        $("#cancelButton").click();

        debugger;

        expect($(".bootbox-body")).toHaveText("Are you sure you want to cancel?")

        $('.modal-footer button[data-bb-handler="Yes"]').click();

        expect(MyTestObj.myMethod).toHaveBeenCalledWith("123")
    })
})

谢谢 Jarred,您的解决方案效果很好!这是我的工作测试:

    describe("test dialog", function(){
        it("when cancel button is clicked", function() {
            spyOn(MyTestObj, 'myMethod')

            $("#cancelButton").click();

            waitsFor(function() {
                return $(".bootbox-body").is(":visible");
            }, "Element did not show up", 1000);

            runs(function () {
                expect($(".bootbox-body")).toHaveText("Are you sure you want to cancel?")
                $('.modal-footer button[data-bb-handler="Yes"]').click();

                expect(MyTestObj.myMethod).toHaveBeenCalledWith("123")
            })
        })      
    })
4

1 回答 1

3
于 2013-09-23T17:29:57.760 回答