当前位置: 首页 > 知识库问答 >
问题:

禁用茉莉花测试的引导转换

耿弘阔
2023-03-14

我正试图写一个Jasmine测试来覆盖一个Twitter Boostrap模态对话框。当调试器行被注释掉时,测试失败。当调试器暂停处理并且我继续时,它通过。我认为引导模式的转换导致了这个问题,因为在我进行expect调用时,模式对话框还不在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")
            })
        })      
    })

共有1个答案

濮俊美
2023-03-14

您可以使用 waitsFor jasmine 方法,后跟一个 run 块 (https://github.com/pivotal/jasmine/wiki/Asynchronous-specs#waitsforfunction-optional-message-optional-timeout):

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

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

runs(function () {
    expect(MyTestObj.myMethod).toHaveBeenCalledWith("123")
})

<代码>

 类似资料:
  • 我使用文件在 Webstorm 8.0.4 中设置了茉莉花集成 这与语法突出显示的工作方式一样,我可以跳转到声明,文档显示正确。所以连接看起来很好。然而,JSHint仍然为每个关键字抱怨它没有被定义,例如 另请参见以下屏幕截图。正如您所看到的,语法突出显示很好,但我仍然收到一个错误。

  • 我正在使用jasmine 2.0。 我试图理解函数。 使用以下基本茉莉花代码: 我认为我看到的发生: 运行,安装时钟,记录安装 测试运行时,setTimeout不执行任何操作 测试等待5秒(Jasmine失败前的默认超时) 测试失败,因为从未调用。 我知道这一点,因为我得到了错误:超时-异步回调没有在jasmine指定的超时内调用。DEFAULT_TIMEOUT_INTERVAL。 然后运行,卸载

  • 我有这个错误的麻烦。我想我忘记了一些东西,无法弄清楚是什么。任务很简单:只需测试我的简单组件。在这里,我们去: 和测试: 和HTML: 这个错误: 需要undefined等于['big','primary theme color']。错误:需要undefined等于['big','primary theme color']。位于UserContext。(http://localhost:9876/

  • 问题内容: 当我尝试使用 $ httpBackend.flush();时 我收到错误 TypeError:$ browser.cookies不是一个函数。 我找不到有关这种错误和解决方案的任何信息。 角度:1.3.15 茉莉花:2.3.4 问题答案: 我相信您在版本中使用的是角度模拟,而您的代码使用的是angular 。请检查您是否在为应用程序中实现的版本使用模拟程序。同样,提供您的茉莉花测试配置

  • 我熟悉python单元测试测试,如果断言失败,该测试将被标记为“失败”,并继续进行其他测试。另一方面,茉莉花将继续通过所有期望,即使其中一个失败。在第一个预期失败后,如何使Jasmine停止处理测试? 我想错了吗?我有一些测试有很多< code>expect,当只有第一个错误时,显示所有的堆栈跟踪似乎是一种浪费。

  • 问题内容: 如何在angularjs量角器茉莉花测试中查看console.log输出?截至目前,浏览器自身关闭速度过快。 更多信息-我正在使用angularjs教程,步骤8。我试图将e2e测试更改为量角器。我正在使用的量角器配置文件基于%appdata%\ npm \ node_modules \ protractor \ referenceConf.js。在配置文件引用的js规范文件中,我有co