问题标签 [jasmine]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
482 浏览

javascript - Coffeescript中的匿名函数如何测试它

我知道 Stackoverflow 中有很多关于这个的讨论,但我无法得到一个直接的答案。而且我对coffeescript知之甚少。

基本上,我有这个咖啡脚本

return42 = -> 42

当我编译时,我得到了这个

所以它被包裹在匿名函数中的函数,它没有暴露给世界。所以当我写这个测试

测试将失败,因为 return42() 未定义。我怎么能解决这个问题。

非常感谢你。:-)

0 投票
2 回答
3079 浏览

javascript - 如何自定义 Jasmine 的目录结构?

使用 Jasmine Rubygem 时,我发现我必须遵守生成的目录结构,该目录结构在文件夹中有一个子文件夹,这非常javascripts烦人spec。我觉得它没用,因为我完全用 Javascript 编写。

我发现我可以public通过更改生成的文件夹来更改它jasmine.yml,但是,这不是我想要的,因为我仍然必须随身javascripts携带文件夹。

有没有办法自定义这个文件夹结构?

0 投票
2 回答
3912 浏览

ruby-on-rails-3.1 - Jasmine 规范未找到在 CoffeeScript 中定义的类

我正在 Rails 3.1 后端构建一个backbone.js 应用程序。我正在使用 CoffeeScript 编写主干类,并使用 Jasmine(通过 jasmine-headless-webkit)进行测试。

给定以下(部分)树:

...我希望avia_view_spec.js.coffee知道关于Avia.AviaView,它在avia_view.js.coffee.

但是,我从运行中得到以下输出bundle exec jasmine-headless-webkit

我的jasmine.yml包含以下内容:

我需要告诉 Jasmine 加载内容,avia_view.js.coffee但我不完全确定如何加载。src_files在部分中添加显式引用jasmine.yml似乎没有什么区别......

有人可以告诉我我在这里做错了什么吗?我怀疑这很简单......

0 投票
1 回答
2507 浏览

ruby-on-rails-3.1 - 使用 Jasmine 监视 Javascript 构造函数

我正在为一些 Javascript 类(backbone.js 视图,用 Coffeescript 编写)编写规范,并且我想确保一个视图构建另一个视图。

我试图通过监视构造函数来做到这一点,如下所示:

对 AviaView的initialize()调用肯定会导致调用 MatricesView 构造函数,由这一行提供:

它绝对有效;如果我手动运行应用程序,我可以看到在initialize(). 但是我的茉莉花规格失败了:

我已经和我的几位同事谈过,他们同意这应该可行……有人能建议一种监视构造函数的好方法吗?

0 投票
2 回答
1822 浏览

javascript - 如何使用 Sinon.JS 存根 google.maps 库?

我在这样的 Backbone 模型中使用 google.maps 库(coffeescript):

在我的测试中,每当我尝试实例化 aRoute时,显然都会遇到问题。我怎样才能google在我的测试中存根,这样它就不会导致这个问题?

0 投票
1 回答
730 浏览

maven - 是什么导致 HTMLUnit 抛出“ReferenceError:“console”未定义。”?

我正在尝试将 jasmine 集成到我的 MVN 构建中以测试我的 Javascript 库。它现在已经开始抛出以下错误:

ReferenceError:未定义“控制台”。

很明显,这是我对控制台的使用导致了它的问题。我的 coe 在使用之前实际上会测试控制台的存在,但 MVN 似乎并不喜欢它。

有什么想法可以让它对这个问题大喊大叫吗?

0 投票
1 回答
1166 浏览

javascript - 在 Jasmine 测试运行期间找不到 haml-js 模板

我正在尝试使用 Jasmine(通过 jasmine-headless-webkit)测试一些backbone.js 视图。一切都运行良好,除了我的 haml-js 模板在测试中无法访问。

我认为以下代码可以正常工作:

...但是当它作为 Jasmine 规范的一部分运行时,出现以下故障:

我怀疑我在jasmine.yml. 我已经明确包含了它仍然失败的模板文件:

也许我只是在这里采取了错误的方法......我应该使用 Jasmine 来存根和模拟对 JST 和 jQuery 的调用吗?严格的单元测试方法说我应该这样做,在这种情况下,缺少模板访问不是问题。

任何提示 - 无论是我的测试方法,还是特定的 JST 失败,都将不胜感激。

0 投票
2 回答
330 浏览

javascript - 运行使用使用 Widget 工厂构建的 jQuery 插件的 jasmine 规范时出现 TypeError

我正在使用一个名为toggleEdit的 jQuery 插件进行内联编辑。

当代码在页面中实际使用时,一切正常。

但是,我的测试套件失败并出现以下错误:

TypeError: Cannot call method 'remove' of undefined

我追踪到它是从clear这个特定插件的方法中触发的。它的源文件可以在这里找到。

该代码中有两个相关位:

1-_init功能

如您所见,当插件第一次实例化时,它使用data结构self来存储新创建的元素。

2-clear功能

然后该clear函数尝试访问该结构并检索元素。那时,在 jasmine 规范中,它会因上述异常而失败。

有没有人见过类似的东西?

编辑:

这是我的规范,它是能够重现错误的最简单的代码:

http://alz.so/static/plugins/toggleedit/jquery.toggleedit.js

0 投票
2 回答
8779 浏览

javascript - 使用 Jasmine 单元测试模拟鼠标点击

我是 Jasmine 的新手,到目前为止能够设置几个基本测试。我现在要做的是创建一个测试来模拟元素上的鼠标单击事件,例如 div、标签等

我的测试应该能够确定单击链接时是否会扩展 div 容器 - 我通过它的类名确定这一点。

我的源代码有一个监听点击事件的事件监听器:

和 HTML 标记是

我正在尝试的单元测试是:

但是源代码似乎从未拾取点击事件。

我究竟做错了什么?

提前致谢

0 投票
1 回答
576 浏览

jquery - 改进 Jasmine 规范以测试调用参数的属性

我正在使用以下 Coffeescript 代码来验证一个主干.js 视图的初始化是否构造了另一个:

这很好用,但我不禁认为应该可以改进它。我在想像这样的语法:

... wheretoHaveBeenCalledMatching接受一个函数,该函数接受一些参数,并返回真值表示成功,否则返回假值。

有没有人遇到过这样的事情,还是我需要在这里自己动手?或者,有没有人更好地建议如何改进此代码?