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

Rails 5: unable to use env.find_asset in tests

我已经按照 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 在测试环境中为 nil 的原因是什么? (注:我用的是minitest_rails)

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