问题标签 [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 投票
1 回答
587 浏览

javascript - 使用 jasmine 测试期望 jquery 模板可用的 javascript?

我通常在我的 html 文件中设置 jquery 模板,如下所示:

然后我需要使用此模板的 javascript 将通过 id 查找它并传入所需的数据:

现在我正在尝试为我的 javascript 编写 jasmine-bdd 规范。我没有看到我设置模板并让我的 javascript 查找/扩展模板的方式有什么特别的问题......但我不知道如何让茉莉花很好地配合这个......所以......

当我的 javascript 依赖于 jquery 模板并且模板直接在我的 html 页面中定义时,我如何使用 jasmine 测试我的 javascript?

我必须在 jasmine-jquery 夹具中复制我的模板吗?或者有没有办法让 jasmine-jquery 夹具使用我现有的 html / 模板定义?

0 投票
3 回答
4750 浏览

javascript - 如何在 Jasmine 单元测试中使用 Sinon 对 jQuery 动画进行假时间?

我有一个 1 秒的 jQuery.animate操作,在页面加载后 5 秒启动。我在我的 Jasmine 单元测试代码中设置了一个 Sinon 计时器,并在 7 秒的滴答声后进行测试,以查看动画后的属性是否与它们应有的一样。

它不能正常工作,因此我在 Jasmine HTML 测试页面上放置了动画本身的一个实例,以便更好地了解发生了什么。

  • 在 Firefox 和 Chrome 中,页面加载,动画函数被调用,单元测试立即失败,然后(也立即)动画可见。

  • 在 IE、Opera 和 Safari 中,页面加载,动画函数被调用,单元测试立即失败,动画从不可见。

我希望的是以下(在所有浏览器中):

  • 页面加载完毕,调用动画函数,动画瞬间完成,单元测试立即成功。

查看Sinon的文档,它的假计时器涵盖了以下过程: setTimeout, clearTimeout, setInterval, clearInterval,Date

我不知道 jQuery 的动画是如何工作的,但我想它是使用 CSS 来过渡的,而 CSS 过渡并没有包含在 Sinon 中useFakeTimers,所以我想这就是问题所在。但是,如果我对这个问题是正确的,我仍然需要一个解决方案。

或许我应该试试诗乃以外的东西?Jasminewaits()在这个测试中表现完美,但对于像我这样没有耐心的人来说非常不切实际。

还有其他建议吗?请记住,我是 JS 单元测试的新手,所以模糊的答案会让我感到困惑,而不是帮助我。;o)

0 投票
0 回答
192 浏览

ruby-on-rails - 如何在 Rails 应用程序中通过 jasmine 测试选项卡?

在我们的 Rails 应用程序中,我们有许多选项卡,例如概览选项卡、报告选项卡等。如何通过 jasmine 获取这些选项卡?

在我们的 Gemfile 中,我们使用了以下 gem:-

我们还在 spec/helpers 中包含了 jasmine_jquery-1.2.0.js。如果有人提供一些代码,那就太好了。

0 投票
2 回答
18520 浏览

javascript - 如何在 Jasmine 中测试表单提交?

在最终发布到它的 ACTION URL 之前,我有一个表单可以执行一些广泛的 Javascript 内容。我正在编写一些 Jasmine 单元测试,并希望确保在提交表单时发生 Javascript 内容。但是,当我进行单元测试时,我绝对不希望页面转到 ACTION URL。

我在这里看到了一个不错的建议: http ://groups.google.com/group/jasmine-js/browse_thread/thread/a010eced8db17c1a?pli=1

...但是,由于我对 Jasmine 还很陌生,我不确定如何实现它,并且在网上找不到任何相关的例子。有没有人有一些我可以看的示例代码来完成我需要的?

谢谢!

0 投票
2 回答
3396 浏览

javascript - 如何生成用于 Jasmine 测试的夹具

我正在编写一个 Rails 插件/gem,它基本上是一些帮助程序(FormHelpers、FormTagHelpers)和一些相关的 Javascript 来添加行为。

我正在使用 RSpec 测试标签助手。现在我正在设置 Jasmine 来测试 Javascript 行为。

我想从我的插件中的标签助手代码中生成Jasmine 固定装置,而不是使用静态(脆弱)固定装置。因此,当标记代码更改时,Jasmine 测试的固定装置将自动更新。

我的第一个想法是扩展 RSpec,类似于“it_should_behave_like”的共享行为,只有“it_should_save_fixture_on_success”。它就像一个 after(:all) 块。

我需要知道两件事......如何获得上下文的“标题”(这将是夹具的默认名称),以及如何在 after(:all) 中确定是否所有规格成功运行。

这听起来合理吗?还是我错过了一些明显的东西?

0 投票
2 回答
1149 浏览

jasmine - 如何在 Cloud9 中使用 Jasmine?

我经常使用 Jasmine(用于 JavaScript 的 BDD),刚刚发现 Cloud9 并想尝试一下。

在我的本地机器上,我使用 jasmine-node 运行我的规范,但我不知道如何在 Cloud9 中执行此操作。我能够使用 Cloud9 编辑器底部的控制台栏以某种方式通过 npm 安装 jasmine-node,但我无法使用它。

我用 CoffeeScript 编写代码,但这应该不是问题,我也尝试过 JavaScript。

0 投票
2 回答
1815 浏览

javascript - 使用 Jasmine-Node 和/或 Jasmine 客户端的示例项目

是否有任何最终用户示例项目使用 javascript 测试框架 jasmine-node / jasmine 的最佳实践。像一个简单的 CRM、RSS 阅读器等。

0 投票
3 回答
3651 浏览

javascript - Javascript JsTestDriver Jasmine & Jasmine-jquery

我有很多 Jasmine 单元测试,它们正在为 Javascripts 代码运行单元测试。他们正在使用 Jasmine-jquery 插件来进行 DOM 操作。他们使用 loadFixture 来加载 HTML 的固定装置

我尝试使用 JsTestDriver 和 JasmineAdapter 自动化这些单元测试但是所有涉及 DOM-jquery 操作的测试都没有通过?这有什么问题吗?有没有办法将 Jasmine-jquery 与 JsTestDriver 一起使用?

0 投票
2 回答
1584 浏览

javascript - 使用 Jasmine 在 CoffeeScript 中测试 Backbone.js 的 TypeError

我目前正在研究 Backbone.js 上的 PeepCode 视频,但尝试用 CoffeeScript 而不是纯 JavaScript 编写它。

到目前为止一切顺利,除非我尝试在代码上运行 Jasmine 测试时遇到一些 TypeErrors:

我的 CoffeeScript/Backbone 文件如下所示:

Jasmine 测试规范是这样的:

我猜这个问题与 CoffeeScript 将所有内容包装在一个函数中有关。当我从等式中删除 jQuery 时,它工作正常。奇怪的是,尽管 Jasmine 告诉我TypeError: Cannot call method 'isFirstTrack' of undefined如果我album.isFirstTrack(0)在它返回的页面上的控制台中运行,true那么窗口确实可以访问变量和方法。

0 投票
3 回答
1490 浏览

javascript - 没有用 Jasmine 执行 Ajax

我在使用 Jasmine BDD 框架执行 ajax 时遇到了麻烦。

我想测试实际的 ajax 调用,而不是做出虚假的响应。我已阅读文档并尝试了所有方法,但似乎只是忽略了 ajax 代码。我也尝试过使用间谍,但似乎没有帮助。

一个非常基本的示例不起作用:

返回总是0,它永远不会进入成功函数。

我究竟做错了什么?