ruby-on-rails - rails 4.1 jasmine-jquery 未加载

标签 ruby-on-rails jasmine jasmine-jquery

我最近升级到 Rails 4.1

我使用的是 gem“jasmine-rails”,它本身运行良好。

我也在尝试使用 gem 'jasmine-jquery-rails' 加载固定装置,但无法加载它(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。

有什么想法吗?

最佳答案

您只需要以下内容。

在 jasmine.yml 文件中有:

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

然后在规范文件中,您需要包含测试所需的文件(这些文件在 Assets 管道中,因此您只需要包含它。这就是 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 Assets 文件都在 Assets 管道中,因此在您的测试文件中,您只需要包含测试所需的内容即可。

快乐编码

关于ruby-on-rails - rails 4.1 jasmine-jquery 未加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22992210/

相关文章:

AngularJS,对使用依赖于某些资源的服务的指令进行单元测试

javascript - D3JS 测试 - enter() 未被触发

ruby-on-rails - 关于将实例变量传递给 redirect_to 方法的困惑。正如 Rails 指南中所见

ruby-on-rails - 调试参数错误: invalid base64

css - 如何在 rails 4 中更改助手生成的 div 的 css

javascript - Jasmine 测试甚至在 .click() 被触发之前运行

javascript - 如果所有方法都是私有(private)的,你如何测试 jQuery 插件?

ruby-on-rails - 在 View 中使用另一个模型导致测试错误

angular - 如何为 Jasmine 测试用例模拟事件停止在 Angular 6 中的传播

javascript - $scopeProvider <- $scope/未知提供者