szyny rspec-rails (2.7.10) post: Rails 3.1 Error Catching jest dla mnie bez znaczenia.Dlaczego seans_all_requests_local nie powiedzie się z konfiguracją rspec
Kod:
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
Kod ten doskonale współpracuje z produkcji/rozwoju ... Problem jest, gdy chcę przetestować go z RSpec. Jak przełączać przypadki testowe między środowiskami?
Próbowałem dodając coś jak:
before do
Rails.application.config.consider_all_requests_local = true
end
uzyskać:
... ===== Od dołu ====== ===== Od prawdą. dno ====== prawda. ===== Od dole ====== prawda. Od dołu ====== ===== prawda
więc próbował
before do
Rails.application.config.consider_all_requests_local = false
end
tak mam:
... ===== Od dołu ====== ===== false false Od dołu ====== ===.. == Od dole ====== fałszywe. ===== Od dołu ====== fałszywego
Jak to w ogóle możliwe? ... to samo ze zmianą spec_helpera
config.before(:each) do
Rails.application.config.consider_all_requests_local = false
end
chyba że nie działa. Top sekcja jest niedostępna z rspec ... zawsze trafia Dno dlaczego? Zakładam, że jest w jakiś sposób związany z Rack ... ale czy istnieje jakieś rozwiązanie, aby dynamicznie zmienić to zachowanie wewnątrz rspec?
pozdrowienia
Nie jestem pewien, czy moja sytuacja jest taka sama, ale musiałem dodać: 'Rails.application.config.action_dispatch.show_exceptions = true' do poprzedniego bloku. i '... = false' na after. –
Niesamowite rozwiązanie, dokładnie to, czego szukałem. Dziękuję Ci! –
To nie działa dla mnie, gdy uruchamiam pełny pakiet przy użyciu 'rake spec'. Przechodzi tylko wtedy, gdy uruchomię specyfikę 'feature' spec .. –