Я использую в моей application_controller: .consider_all_requests_local
какТестирование с RSpec .consider_all_requests_local
unless Rails.application.config.consider_all_requests_local
rescue_from ActionController::InvalidCrossOriginRequest, :with => :render_404
end
Это возвращение 404, если ActionController :: InvalidCrossOriginRequest приподнята. В местной среде это не поднимается, это хорошо для отладки. Для этой части он работает. Но я бы хотел проверить его с помощью rspec.
Я пытался что-то вроде
describe 'ActionController::InvalidCrossOriginRequest render 404' do
before { Rails.application.config.consider_all_requests_local = false }
controller do
def index
raise ActionController::InvalidCrossOriginRequest
end
end
subject { xhr :get, :index, format: :js }
its(:status) { is_expected.to eq 404 }
end
Две вещи. Я, вероятно, не поднимаю должным образом. Локально ошибка возникает, когда вызывается mywebsite.com/editor/fckeditor.js. Не удалось найти способ вызова определенного URL-адреса.
Вторая проблема, до не изменяет состояние Rails.application.config.consider_all_requests_local
.
я получаю:
1) ApplicationController ActionController::InvalidCrossOriginRequest render 404 status
Failure/Error: raise ActionController::InvalidCrossOriginRequest
ActionController::InvalidCrossOriginRequest:
ActionController::InvalidCrossOriginRequest
Спасибо @ aaron-k действительно отличный ответ. – Mio