我最近升级到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。
有什么想法吗?
答案 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
。然后你不必再在其他任何地方要求它了。它对我有用。