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

javascript - 茉莉间谍未定义

当我运行我的茉莉花规格时,我收到以下错误:

我的咖啡脚本代码:

我已经将我的错误代码简化为上面的调试代码,但我无法弄清楚为什么当我明确地将它称为我的测试时,它会说从未调用过间谍。我正在其他地方测试该方法,所以我认为错误必须与我使用 Jasmine Spy 的方式有关。谢谢。

0 投票
1 回答
3857 浏览

testing - 如何在 Jasmine 中将标签设置为夹具

我目前正在尝试使用 Jasmine 测试 JS 函数。由于该函数检查body标签中设置的 CSS 类,因此我想<body>在夹具中使用该标签:

jQuery 对这个存根 HTML 的引用$('body')——然后交给我正在测试的 JS 函数。但是这个body标签显然从来没有真正到达 Jasmine 测试中——它看起来好像 Jasmine 用一个 body 创建了自己的文档,并且在里面它把所有的固定装置放在一个里面div——至少当我回outerHTML显存根 body 元素的时候,我在里面看到了这个一个正文和一个与 Jasmine 相关的内联 JS 之后:

当我尝试对身体进行存根时,它是空的,但当我使用 a 时它是填充的div

有没有办法在 Jasmine 测试中存根 body 标签?

0 投票
1 回答
1086 浏览

jquery - Jasmine maven 插件和 jasmine-jquery 不同的结果

我的项目是标准的 maven java 项目。我正在尝试将 jasmine-maven 插件包含到我的 CI 中。但是当我运行 command 时mvn clean install,它会正确运行测试。但是,如果我mvn jasmine:bdd从浏览器运行并运行测试。我的 html 装置未加载。

这是我的项目结构。

这是我的 pom.xml

当我从浏览器运行测试时。所有的 html 固定装置都是 404。有没有办法让两种方式都起作用?

这就是我加载夹具的方式

这是我的 jasmine-jquery 路径配置

0 投票
1 回答
949 浏览

jquery - 为什么在我的 jasmine 测试中 jQuery 代码没有执行,或者至少看起来没有执行?

我正在使用 jasmine-rails gem 运行 Rails 3.2.8。以下是我的 Gemfile 中描述 jasmine 设置的行:

我也在使用jasmine-jquery扩展。这组函数提供了我在测试中使用的 toHaveText 方法。我已将 jasmine-jquery 扩展文件保存到 spec/javascripts/helpers 目录中。

直接位于 spec/javascripts 目录中的名为 UserInvitationsSpec.js 的测试文件包含以下内容:

如您所见,我包含了一个基本的 javascript 测试,以显示非 jQuery 测试按预期工作。

我位于 app/assets/javascripts 目录中的 javascript 文件 core.js 包含以下内容:

当我通过终端运行“bundle exec jasmine-headless-webkit”时,输出如下:

我位于同一 app/assets/javascripts 目录中的 application.js 文件具有以下内容:

我位于 spec/javascripts/support 目录中的 jasmine.yml 文件包含以下内容:

知道为什么在应用程序中正常工作的 jQuery 函数没有在测试环境中执行吗?

非常感谢!

-丽贝卡

0 投票
2 回答
597 浏览

javascript - Jasmine jQuery 未检测到 DOM 操作

我正在使用 Jasmine jQuery 测试自定义 javascript 模块的 AJAX 请求,最终它是对 DOM 的后处理操作,但我的 Jasmine 测试没有找到新操作的元素。

茉莉花测试如下...

在该SC.init()方法中,它将元素添加到 DOM,然后运行 ​​AJAX 请求,该请求返回数据并将其注入 DOM。这些新创建的元素匹配“div.search_result”。

我已经确认所有 AJAX 请求都在正常运行,并且 SC 库正在正确地将所有元素注入 DOM;从功能的角度来看,该库正在运行。问题是如何让 Jasmine 测试来查看 DOM 的更新。同样,我不需要帮助调试 SC 代码库;我需要帮助调试测试本身。

你看到有什么不正常的地方吗?

0 投票
1 回答
780 浏览

javascript - 使用 Jasmine-Maven 测试 AJAX 调用

对于我当前的项目,我正在使用 Jasmine 设置 JS 测试。我们希望我们的测试在每次构建时自动运行,所以我将它插入到我们的 Maven 构建中。我可以运行 Javascript 的一些基本测试,并且一切正常。到目前为止,一切都很好!

但是,我们正在构建一个富客户端接口,并对服务器进行大量回调——因此,我们的代码中有很多 $.ajax 调用。每当我尝试加载包含调用的 JS 文件(执行测试,甚至还没有处理)时,Maven 构建每次都会崩溃,因为它已经尝试执行回调:

所以,只是为了说清楚:我不是在这里运行测试,我只是在加载源代码。到目前为止,这是我的插件的配置:

任何人都有这方面的经验,并且知道我必须如何配置它?

0 投票
1 回答
1759 浏览

backbone.js - 用 jasmine 测试主干视图

我正在尝试用茉莉花测试我的主干观点。我使用下划线库为主干视图生成模板。

出于测试目的,我使用 jasmine jasmine-jquery

由于视图已嵌入 ruby​​,因此我无法在 jasmine 测试中加载固定装置。这是我的代码

主干视图

此视图使用以下模板

专辑模板album_template.html.erb

骨干模型

茉莉花测试-album_spec.js

此规范加载以下夹具 - album_fixture.html

这个测试失败了

期望(this.view.template).toBeDefined();

当此测试通过时,夹具正在加载 expect($("#albums")).toExist();

我的问题是如何加载具有嵌入式 ruby​​ 视图的固定装置?我能够成功测试模型和集合,但在测试视图时遇到了麻烦。

0 投票
2 回答
1338 浏览

jquery - 如何加载 Rails 视图以在 Jasmine 中进行测试?

以下代码在浏览器中运行,但如何使用 Jasmine 对其进行测试?单击 后#opener,它应该会显示一个 jQuery 对话框并进行 ajax 调用以加载内容:

spec.js.coffee:

看法:

它没有得到点击事件,所以似乎没有加载视图。如何加载视图进行测试?

在 Rails 3.2.2 和 Jasminerice 中工作。

0 投票
0 回答
476 浏览

unit-testing - jasmine-jquery qUnit 替代方案

我目前正在测试一些使用模板呈现的 Backbone.js 视图。我的模板在我的 html 中定义并使用 jinja 构建服务器端。我使用的单元测试框架是 qUnit。我希望能够做一些类似于 jasmine-jquery loadFixtures 功能的事情,即将我的模板加载到我的测试套件中以便能够呈现我的视图(在此处描述:http: //lostechies.com/derickbailey/2011 /09/06/test-driving-backbone-views-with-jquery-templates-the-jasmine-gem-and-jasmine-jquery/ Jasmine-JQuery Fixtures To The Rescue! 部分)。

qUnit 有替代方案吗?一个更好的方法继续?

这是我的观点的定义方式:

这是我定义模板的方式:

0 投票
3 回答
2611 浏览

visual-studio - Unable to get jasmine-jquery fixtures to load in Visual Studio with Chutzpah, or even in browser

I'm prototyping a MVC.NET 4.0 application and am defining our Javascript test configuration. I managed to get Jasmine working in VS2012 with the Chutzpah extensions, and I am able to run pure Javascript tests successfully.

However, I am unable to load test fixture (DOM) code and access it from my tests.

Here is the code I'm attempting to run:

test.js

The fixture is in the same folder as the test file. The setFixtures operation works, but when I attempt to load the HTML from a file, it doesn't. Initially, I tried to use the most recent version of jasmine-jquery from the repository, but then fell back to the over 1 year old download version 1.3.1 because it looked like there was a bug in the newer one. Here is the message I get with 1.3.1:

Test 'jasmine tests::Copies data correctly' failed Error: Fixture could not be loaded: ./testfixture.html (status: error, message: undefined) in file:///C:/Users/db66162/SvnProjects/MvcPrototype/MvcPrototype.Tests/Scripts/jasmine/jasmine-jquery-1.3.1.js (line 103)

When I examine the source, it is doing an AJAX call, yet I'm not running in a browser. Instead, I'm using Chutzpah, which runs a headless browser (PhantomJS). When I run this in the browser with a test harness, it does work.

Is there someone out there who has a solution to this problem? I need to be able to run these tests automatically both in Visual Studio and TeamCity (which is why I am using Chutzpah). I am open to solutions that include using another test runner in place of Chutzpah. I am also going to evaluate the qUnit testing framework in this effort, so if you know that qUnit doesn't have this problem in my configuration, I will find that useful.