đường ray rspec-ray (2.7.0) (3.0.10) bài đăng: Rails 3.1 Error Catching không liên quan đến tôi.Tại sao xem_all_requests_local không thành công với cấu hình rspec
Code:
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
Mã này hoàn toàn làm việc với sản xuất/phát triển ... vấn đề là khi tôi muốn thử nghiệm nó với rspec. Làm thế nào để chuyển đổi trường hợp thử nghiệm giữa các môi trường?
Tôi đã cố gắng thêm một cái gì đó như:
before do
Rails.application.config.consider_all_requests_local = true
end
tôi nhận được:
... ===== Từ đáy ====== đúng ===== Từ. đáy ====== đúng. ===== Từ đáy ====== đúng. ===== Từ đáy ====== đúng
nên cố gắng
before do
Rails.application.config.consider_all_requests_local = false
end
vì vậy tôi nhận được:
... ===== Từ đáy ====== sai ===== Từ đáy ====== sai ===.. == Từ số dưới ====== sai. ===== Từ dưới ====== false
Điều đó thậm chí còn có thể như thế nào? ... cùng với việc thay đổi spec_helper
config.before(:each) do
Rails.application.config.consider_all_requests_local = false
end
trừ khi không hoạt động. Đầu trang phần không thể truy cập được với rspec ... luôn truy cập Dưới cùng tại sao? Tôi giả sử nó bằng cách nào đó gắn bây giờ với Rack ... nhưng có giải pháp nào để tự động thay đổi hành vi này bên trong rspec?
liên quan
Tôi không chắc chắn nếu tình hình của tôi là như nhau, nhưng tôi đã phải thêm: 'Rails.application.config.action_dispatch.show_exceptions = true' vào khối trước. và '... = false' vào sau. –
Giải pháp tuyệt vời, chính xác những gì tôi đang tìm kiếm. Cảm ơn bạn! –
Nó không thành công đối với tôi khi tôi đang chạy bộ đầy đủ bằng cách sử dụng 'rake spec'. Nó chỉ chạy khi tôi chạy đặc tả 'feature' cụ thể .. –