rails 4.1 jasmine-jquery没有加载

时间:2014-04-10 15:19:26

标签: ruby-on-rails jasmine jasmine-jquery

我最近升级到Rails 4.1

我正在使用gem' jasmine-rails',这本身就很好。

我也在尝试使用gem' jasmine-jquery-rails'加载fixture,但无法加载它(jasmine根本不识别jasmine-jquery函数)。我添加了" jasmine-jquery.js"到我的jasmine yml文件。

我还尝试将文件直接添加到我的app / javascripts / assets文件夹中,并将jasmine.yml文件更改为

src_dir: "app/assets/javascripts"
src_files:
  - "application.{js.coffee,js,coffee}"
  - "jasmine-jquery.js"

但它仍然不会加载jasmine-jquery。

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

您需要的只是以下内容。

在jasmine.yml文件中,只需:

即可
spec_files:
  - "**/*[Ss]pec.{js.coffee,js,coffee}"

然后在spec文件中,您需要包含测试所需的文件(这些文件位于资产管道中,因此您只需要包含它。这就是jasmine-rails gems的用途)。 / p>

也许这个例子可能会有所帮助:

//= require jquery
//= require jasmine-jquery
describe("Jasmine jQuery Test", function() {
  it("works out of the box", function() {
    expect($('<input type="checkbox" checked="checked"/>')).toBeChecked();
  });
});

请注意,您需要用于测试的文件。在这种情况下,jquery和jasmine-jquery。

jquery是必需的,因为jasmine-jquery使用它的功能(如GitHub上的文档中所述)和jasmine-jquery是必需的,因为我们使用matcher&#34; toBeChecked()&#34;。

按照这种方式考虑,所有Rails资产文件都在资产管道中,因此在测试文件中,您只需要包含测试所需的内容。

快乐编码

答案 1 :(得分:0)

尝试添加:

#= require jquery
#= require support/jasmine-jquery-1.7.0

到您的spec/javascripts/spec_helper.coffee文件。

HTH, Jarra

答案 2 :(得分:0)

@Elyasin提供了一个有效的解决方案,除了你必须在每个js规范文件中要求jasmine-jquery。将//= require jasmine-jquery添加到app/assets/javascripts/application.js。然后你不必再在其他任何地方要求它了。它对我有用。