在Capybara的功​​能测试中没有加载Javascript类

时间:2016-12-23 00:35:08

标签: javascript ruby-on-rails coffeescript sprockets

我有一个coffee类,在create.js.coffee文件中调用。 开发时效果很好。 但是,在运行功能测试时(使用Capybaraweb-kit),似乎此类未正确加载。

这些是文件:

资产/ JavaScript的/ app_init.js.coffee

window.MyApp = { }

资产/ JavaScript的/模块/ product_module.js.coffee

window.MyApp.ProductModule = class ProductModule
  @show: ->
    # Do stuff

资产/ JavaScript的/的application.js

//= require app_init
//= require_tree .

create.js.coffee

console.log window.MyApp => Returns [Object Object]
console.log window.MyApp.ProductModule => Returns undefined

这些返回是我在运行规范和调试时得到的。有什么想法吗?

我正在使用 Rails 5 ,如果这有帮助

2 个答案:

答案 0 :(得分:0)

我运行rails assets:precompile并修复了测试。我不确定为什么我需要预编译资产来运行测试。我可能在配置上有问题。想法?

答案 1 :(得分:0)

似乎test.rb文件配置,不包括资产编译了。解决方案是将此添加到test.rb

config.assets.compile = true