3

我最近升级到 Rails 4.1

我正在使用 gem 'jasmine-rails',它本身就可以正常工作。

我也在尝试使用 gem 'jasmine-jquery-rails' 来加载夹具,但无法加载它(jasmine 根本无法识别 jasmine-jquery 函数)。我在我的 jasmine yml 文件中添加了“jasmine-jquery.js”。

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

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

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

有什么想法吗?

4

3 回答 3

1

您只需要以下内容。

在 jasmine.yml 文件中,有以下内容就足够了:

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

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

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

//= 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 是必需的,因为我们使用匹配器“toBeChecked()”。

这样想,你所有的 Rails 资产文件都在资产管道中,所以在你的测试文件中你只需要包含测试所需的内容。

快乐编码

于 2015-04-17T03:27:22.923 回答
0

尝试添加:

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

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

HTH,贾拉

于 2014-07-24T13:17:11.530 回答
0

@Elyasin 提供了一个可行的解决方案,但您必须jasmine-jquery在每个 js 规范文件中都需要。添加//= require jasmine-jqueryapp/assets/javascripts/application.js. 然后,您不必在其他任何地方再次要求它。它对我有用。

于 2017-08-13T00:51:48.560 回答