问题标签 [jasmine-jquery]

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 回答
2983 浏览

jquery - ReferenceError:运行 JasmineHeadlessWebkit 时找不到变量:$

至少在过去的两个小时里,我一直试图找到答案,但没有任何运气。我希望这里有人可以提供帮助。

我在ReferenceError: Can't find variable: $使用 JasmineHeadlessWebkit 运行我的 Jasmine 规范时得到了这个。

奇怪的是,这只发生在我说

在我的game.coffee档案中。

我可以在$没有任何问题的情况下使用game.coffee. 例如:

这完全没有问题。

此外,测试在 Chrome 中运行良好。

所以,我假设这与 jQuery 没有及时加载有关,但我不知道为什么。

我有 jQuery in specs/javascripts/helpers/and injasmine.yml我提到了helpers之前的spec_filesandsrc_files但这似乎并没有真正的区别。

因此,如果有人知道如何确保在运行 Jasmine 的规范时完全加载 jQuery,我将非常感谢任何帮助。

另外,如果您需要任何其他信息,请告诉我。

谢谢你。

0 投票
1 回答
26164 浏览

angularjs - 如何解决 Jasmine 单元测试中的 $q.all 承诺?

我的控制器有如下代码:

在我的单元测试中,我正在做这样的事情:

现在在我的测试中,我正在检查是否调用了服务,并且 data1、data2 不是未定义的。

我的问题是,在我用 q.all 替换控制器中的个人服务调用并scope.$applyrootScope.$digest. 使用 q.all 和rootScope.$digest(也尝试使用scope.$apply)两个测试都失败并出现错误:

达到 10 次 $digest() 迭代。中止!

如果我删除rootScope.$digest,那么承诺永远不会得到解决并且测试失败说

期望定义未定义。

任何帮助我应该如何对代码进行单元测试q.all

偶然发现了这个帖子

但这也无济于事,因为我已经在尝试使用$digest.

0 投票
1 回答
2203 浏览

javascript - 在 Jasmine 中完成测试 CSS 过渡

我正在尝试使用 jasmine 和 jasmine-jquery 测试一些 JavaScript

所以我在函数中有一点 Javascript

我在 spec.css 中应用了一些样式,添加了一个 css 转换并将一些 html 添加到一个夹具中,然后添加到 jasmine 规范中,如下所示:

现在我已经在页面上对此进行了测试并且可以正常触发,但是在运行器上它失败了,甚至 console.log 也没有运行。你能测试转换吗?

0 投票
4 回答
4128 浏览

jquery - 如何使用 jasmine 对保存时的主干成功和错误响应进行单元测试

如何在 Jasmine 中对模型的保存成功和错误响应进行单元测试?

0 投票
1 回答
3406 浏览

jquery - Jasmine 在原型方法上的 spyOn toHaveBeenCalled 问题

我对方法进行监视的示例以“预期的间谍句柄单击已被调用”而失败。什么时候应该通过。但是,我得到了控制台日志“Foo handle_click called!”,所以我知道它正在被调用。

Foo.js

Foo_spec.js:

我正在使用 jasmine-1.2.0、jasmin-html 和 jasmine-jquery,但不是 jasmine-sinon;至少我不认为它捆绑在那里。任何帮助深表感谢!

更新 这在下面得到了回答。但是,我想在 jQuery 插件的情况下记录解决方案:

Foo.js:

Foo_spec.js:

0 投票
1 回答
1919 浏览

jasmine - 使用 jasmine 和 jstestdriver 运行多个规范

我已经编写了多个规范文件,用于对网页上的各种模块进行单元测试。如果我单独运行它们,一次一个它们工作正常。但是当我尝试按顺序运行所有文件时,只有 spec 文件夹中的第一个文件有效,而所有其他测试都失败了。任何帮助,将不胜感激。

每个规范文件都使用 requirejs 加载一个静态页面并将它们呈现在页面上。呈现页面后,我会检查标题、文本等是否正确。规范文件看起来像这样。关于Spec.js-->

FooterSpec.js-->

jstestDriver.conf-->

当我运行此设置时,“关于”页面不会呈现。由于所有关于页面的测试用例都失败,因此仅呈现页脚页面。

0 投票
2 回答
9591 浏览

javascript - Jasmine - 单击时检查 addClass

这是一个 Rails 应用程序。我将 Jasmine gem 与 Jasmine-Jquery 一起使用。

这是我在资产管道中的 JS:

这是我的名为 workgrid_spec.html 的夹具:

这是我的规范文件:

这是我得到的错误:

0 投票
0 回答
432 浏览

javascript - Jasmine 测试:监听 DOM 变化

我有一个 requireJS 设置,其中有一个“imageGallery”模块,用于侦听和处理“.gallery”元素上的点击事件。这反过来使用插件“magnificPopup”打开基于单击元素的图像库。

我想用 Jasmine 对此进行测试;那就是我想测试是否调用了单击事件并且 magnificPopup 的 html 在 dom 中 - 证明单击事件是成功的。

我当前的点击测试使用“waitsFor”,但这总是失败。关于如何实现这一目标的任何想法?

图片库模块

图片库 茉莉花测试

0 投票
0 回答
367 浏览

angularjs - Jasmine-jquery,为(嵌套)指令测试生成的 GUI

我最近开始使用 jasmine-jquery (1.3.1) 和 angular (1.0.6) 并且需要有关测试 GUI 的建议。我有一些控制器视图,它有角度指令,比如“view.html”:

,并且在 JS 中定义了一个指令“myDirective”,具有模板-URL 'myDirective.html',其中包括ng-repeat并在objectsToIterate. 我为“view.html”和“myDirective.html”加载了固定装置。现在我想测试一下,在用户交互过程中,“myDirective”重复块中确实有一些元素(行)。开始很简单:

现在我被困住了。无法访问“myDirective”元素的“生成”源。如果我使用

我明白了

如果我尝试针对范围编译+消化这个 html,我仍然会得到相同的标记。我怎么能得到“生成”的源,看起来像(伪)

为了检查用户是否可以看到 N 行? someScopeObjects在范围内存在并且有效。

我的下一步实际上是为嵌套在“my-directive”中的指令测试同样的东西,所以我必须以某种方式访问​​“my-directive”的范围。如何?:)

谢谢你。

0 投票
1 回答
21128 浏览

jquery - 我将如何测试 Jasmine 中的 $scope.watch (AngularJS) 更改?

我最近刚开始用 AngularJS 编写一些东西,但我不确定如何为这个特定的东西编写测试。我正在构建一个具有不同状态的“帮助请求”模式。所以在我的控制器中,我使用了一个 $scope.request_mode 变量。激活帮助请求的不同链接将该变量设置为不同的值。

然后在我的指令中,我正在做一个$scope.$watch('request_mode', function(){...});随着请求模式的变化有选择地激活或停用事物。代码都很好用,但我遇到的问题是测试。我似乎无法让 Jasmine 拿起$scope.$watch并在它发生变化时实际发射任何东西。

我敢肯定有人以前遇到过这个问题,所以任何建议都会非常感激。