rspec-rails (2.7.0) рельсы (3.0.10) post: Rails 3.1 Error Catching для меня не имеет значения.
код:
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
Я получаю:
... ===== С дна ====== true. ===== С дна ====== true. ===== От bottom ====== true. ===== С дна ====== true
попробовал
before do
Rails.application.config.consider_all_requests_local = false
end
поэтому я получаю:
... ===== Внизу ====== false. ===== С нижней части ====== false. ===== От bottom ====== false. ===== С нижней части ====== false
Как это возможно?... то же самое с изменением spec_helper
config.before(:each) do
Rails.application.config.consider_all_requests_local = false
end
если не работает. Верх недоступен с rspec... всегда попадает снизу почему? Я предполагаю, что он каким-то образом связан с Rack... но есть ли какое-либо решение для динамического изменения этого поведения внутри rspec?
рассматривает