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
我已经按照 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