独立的Jasmine vs Karma - Jasmine

11

我对测试不熟悉,一直在自学Jasmine。我正在尝试理解在Karma中运行Jasmine和jQuery-Jasmine之间的区别,但是Jasmine的教程没有涉及在使用Karma时需要进行的调整。

有人能向我解释一下Karma-Jasmine与独立的Jasmine之间的要求差异吗?它是否仍需要规范运行器,并且文件结构是否仍然相同?

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

谢谢。

2个回答

13
Karma和Jasmine的SpecRunner.html都是测试运行器(也称为规格运行器)。两者之间的区别在于,Karma是在浏览器外运行的应用程序,而SpecRunner是一个普通的HTML文件,其中包含一堆脚本引用,您可以在浏览器中打开它。
生活在浏览器外部的测试运行器给您带来了许多好处:

谢谢,这对我很有帮助。@user2943490,你是否曾经在没有构建工具的情况下使用过Karma?比如Grunt或Gulpjs,我很想通过一个例子来理解它。- 干杯 - jamie
@jamie Karma是一个独立的npm模块,不依赖于Grunt或Gulp(您只需从控制台运行karma start即可运行Karma),因此默认情况下无需任何构建工具即可运行它。如果您想使用构建工具,则有可用的插件,例如gulp-karma - user2943490

2
我没有使用过jasmine-jquery,但是在使用Karma进行jasmine测试时,Karma会使用karma.conf.js来发现外部依赖项(如jasmine-jquery)。特别是files property。这里有一些不错的例子here。如果您正在使用jasmine的SpecRunner.html运行jasmine测试,则需要确保您使用的任何内容都已在SpecRunner.html中使用脚本标签链接。
至于测试点击处理程序,一个好的选择可能只是直接调用单击处理程序函数。听起来如果您想要更真实的体验,您越来越接近功能测试。为此,您可以考虑将nightmare纳入其中,以自动化用户交互,例如单击等。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接