rspec-rails(2.7.0)rails(3.0.10) 投稿:Rails 3.1 Error Catchingは私にとっては無関係です。rspecの設定でconsider_all_requests_localが失敗する理由
コード:
class ApplicationController < ActionController::Base
unless Rails.application.config.consider_all_requests_local
rescue_from ActiveRecord::RecordNotFound, :with => :render_404
rescue_from Exception, :with => :render_500
rescue_from FunnyException, :with => :my_errors
def my_errors(exception)
#some stuff for production
puts "=======From top====#{Rails.application.config.consider_all_requests_local}"
end
else
rescue_from FunnyException, :with => :my_errors
def my_errors(exception)
#some stuff for development
puts "=====From bottom======#{Rails.application.config.consider_all_requests_local}"
end
end
end
このコードは完全生産/開発で動作します...私はRSpecのでそれをテストしたいときに問題があります。環境間でテストケースを切り替えるには?
私はのようなものを追加してみました:
before do
Rails.application.config.consider_all_requests_local = true
end
私が取得:
... =====下から======真=====から。下======真。===== 下から======真。=====下から======真
はそう
を試してみましたbefore do
Rails.application.config.consider_all_requests_local = false
end
ので、私は得る:
... =====下から======偽=====下から======偽===。。 ==から 下====== false =====下から====== false
これはどのように可能ですか? ... spec_helperを変更した場合と同じです。
config.before(:each) do
Rails.application.config.consider_all_requests_local = false
end
ただし、動作していない場合を除きます。 トップセクションはrspecに到達できません...常にヒットボトムなぜですか?私はそれがRackと今や結びついていると仮定しています...しかしrspecの内部でこの動作を動的に変更するソリューションはありますか?
に関して
私の状況が同じかどうかは分かりませんが、前のブロックに 'Rails.application.config.action_dispatch.show_exceptions = true 'を追加する必要がありました。 '〜= false'を後にします。 –
素晴らしいソリューション、まさに私が探していたものです。ありがとうございました! –
'rake spec'を使ってフルスイートを走らせているとき、私にとっては失敗しています。これは、特定の 'feature'仕様を実行したときにのみ渡されます。 –