Rails 5:在测试中无法使用env.find_asset

时间:2017-07-19 20:34:13

标签: ruby-on-rails ruby minitest

我已经按照here找到的教程,但无法获得与新代码相关的任何测试。具体来说,这就是Rails抱怨的地方:

env = if Rails.application.assets.is_a?(Sprockets::Index)
  Rails.application.assets.instance_variable_get('@environment')
else
  Rails.application.assets
end

asset = env.find_asset(tmp_asset_name)

我得到的确切错误是:

undefined method `find_asset' for nil:NilClass

在测试环境中env为零的原因是什么? (注意:我使用的是minitest_rails)

1 个答案:

答案 0 :(得分:1)

禁用assets.compile = false链轮时

在测试环境中,您可以使用:

Rails.application.assets_manifest.find('cable.js').first
=> #<Sprockets::Asset:3ff35fce4248 "file:///" ... >

取代:

# asset = env.find_asset(tmp_asset_name)
asset = Rails.application.assets_manifest.find(tmp_asset_name).first