読者です 読者をやめる 読者になる 読者になる

RSpec で ActionController::RoutingError: assets ってなる

RSpec で Integration Test (Capybara) を書いて動かしたところ,エラーで落ちた.

説明できるレベルまで原因わかってないけど,解決することはできたので,メモ程度にまとめておく.

ActionController::RoutingError: assets

エラーを見る限り,assets のルーティング関連のように見える.

確かに今回遷移しようとしてる画面には image_tag で画像を描画してるところがあって,その画像の URL は DB に持ってるので,Railsassets で管理してるわけではなく,この辺りの問題なのかも?なんて考えたりしたけどよくわからず.

ググった

結論から言うと,config/environments/test.rb にある以下の定義を true に変えたらテストが通るようになった.

true に変えることによって,例外がアプリケーションまで届くってことのようだけど,はて.

# Raise exceptions instead of rendering exception templates
config.action_dispatch.show_exceptions = true

まとめ

原因わかったら追記する!

参考情報

よくわかってないのに使おうすると,僕の師匠の @nysalor に「カーゴ・カルト・プログラミングだ!」って言われてしまうw

カーゴ・カルト・プログラミング - Wikipedia