【问题标题】:standalone Jasmine vs Karma - Jasmine独立茉莉花 vs 业力 - 茉莉花
【发布时间】:2014-12-12 06:01:13
【问题描述】:

我是一般测试的新手,并且一直在自学Jasmine。我试图了解在 Karma 中运行 Jasmine 和 jQuery-Jasmine 与单独运行 Jasmine 之间的区别。 Jasmine 的教程没有解决使用 Karma 时所需的调整。

有人可以向我解释Karma-Jasmine 与独立 Jasmine 的要求有何不同吗?它是否仍然需要规范运行器,文件结构是否仍然相同?

我正在测试 DOM 事件 - 很多点击处理程序 - 并且不明白如何模拟它。有人可以概述一些基本的想法吗?例如,如果我想在用户单击按钮后检查 p 元素是否已添加到 div 中,这在文件结构和函数中如何工作?

谢谢。

【问题讨论】:

    标签: jquery unit-testing jasmine karma-runner karma-jasmine


    【解决方案1】:

    Karma 和 Jasmine 的 SpecRunner.html 都是测试运行程序(又名规范运行程序)。两者的区别在于,Karma 是一个在浏览器之外运行的应用程序,而 SpecRunner 是一个普通的 HTML 文件,其中包含您在浏览器中打开的一堆脚本引用。

    位于浏览器之外的测试运行器可为您带来诸多好处:

    【讨论】:

    • 感谢帮助我。 @user2943490 你有没有在没有构建工具的情况下使用业力?就像 Grunt 或 Gulpjs 很想通过一个例子来理解。 - 干杯
    • @jamie Karma 是独立的 npm 模块,不依赖于 Grunt 或 Gulp(您只需从控制台使用 karma start 运行 Karma),因此默认情况下您在没有任何构建工具的情况下运行它。如果您的意思是使用构建工具,则有可用的插件,例如gulp-karma
    【解决方案2】:

    我没有使用过 jasmine-jquery,但是对于使用 Karma 的 jasmine 测试,Karma 使用 karma.conf.js 来发现外部依赖项(例如 jasmine-jquery)。特别是files property。一些很好的例子是here 如果你使用 jasmine 的 SpecRunner.html 运行 jasmine 测试,你需要确保你使用的任何东西都在 SpecRunner.html 中与脚本标签相关联。

    至于测试点击处理程序,一个不错的选择可能是直接调用点击处理程序函数。听起来如果你想要更真实的东西,你就离功能测试越来越近了。为此,您可能会考虑合并nightmare 来自动化用户交互,例如点击等。

    【讨论】:

      猜你喜欢
      • 2017-01-15
      • 1970-01-01
      • 2016-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多