rspec-rails (2.7.0) रेल (3.0.10) पोस्ट: Rails 3.1 Error Catching मेरे लिए अप्रासंगिक है।क्यों विचार_all_requests_local rspec config
कोड:
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
तो मैं मिलता है:
... ===== नीचे से ====== झूठी ===== नीचे से ====== झूठी ===।। == नीचे से ====== झूठी। ===== नीचे ====== झूठी
से कैसे भी संभव है? ... spec_helper
config.before(:each) do
Rails.application.config.consider_all_requests_local = false
end
बदलने के साथ ही काम नहीं कर रहा है। शीर्ष अनुभाग rspec के साथ पहुंच योग्य नहीं है ... हमेशा हिट क्यों? मुझे लगता है कि यह किसी भी तरह से रैक के साथ बंधे हैं ... लेकिन क्या इस व्यवहार को rspec के अंदर गतिशील रूप से बदलने का कोई समाधान है?
संबंध
मुझे यकीन नहीं है कि मेरी स्थिति एक जैसी है, लेकिन मुझे पहले ब्लॉक में 'Rails.application.config.action_dispatch.show_exceptions = true' जोड़ना पड़ा। और बाद में '... = झूठी'। –
कमाल का समाधान, ठीक वही जो मैं खोज रहा था। धन्यवाद! –
जब मैं 'रेक स्पेक' का उपयोग कर पूर्ण सूट चला रहा हूं तो यह मेरे लिए असफल रहा है। यह केवल तभी गुजरता है जब मैं विशिष्ट 'फीचर' spec चलाता हूं .. –