Почему think_all_requests_local не работает с rspec config

rspec-rails (2.7.0) rails (3.0.10) post: Rails 3.1 Отлов ошибок для меня не имеет значения.

Код:

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. ===== снизу ====== true

поэтому попробовал

before do
  Rails.application.config.consider_all_requests_local = false
end

, поэтому я получил:

... ===== снизу == ==== ложь. ===== снизу ====== ложь. ===== От снизу ====== ложь. ===== снизу ====== ложь

Как такое вообще возможно? ... то же самое с изменением spec_helper

config.before(:each) do
  Rails.application.config.consider_all_requests_local = false
end

, если он не работает. Верхний раздел недоступен с помощью rspec ... всегда попадает в Нижний почему? Я предполагаю, что теперь он каким-то образом связан с Rack ... но есть ли какое-нибудь решение для динамического изменения этого поведения внутри rspec?

касается

11
задан Community 23 May 2017 в 12:00
поделиться