独立的Jasmine vs Karma - Jasmine

时间:2014-10-16 18:46:38

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

我是一般的测试新手,并一直在教自己Jasmine。我试图理解在jQuery-Jasmine中运行Jasmine和Karma与运行Jasmine之间的差异。 Jasmine的教程没有解决使用Karma时所需的调整问题。

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

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

感谢。

2 个答案:

答案 0 :(得分:8)

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

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

答案 1 :(得分:2)

我没有使用过jasmine-jquery,但是对于使用Karma的jasmine测试,Karma使用karma.conf.js来发现外部依赖项(例如jasmine-jquery)。特别是files property。一些不错的例子是here如果您使用jasmine的SpecRunner.html运行jasmine测试,则需要确保您使用的任何内容都在SpecRunner.html中与脚本标记链接。

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