我正在使用[[application_controller:.consider_all_requests_local
like
unless Rails.application.config.consider_all_requests_local
rescue_from ActionController::InvalidCrossOriginRequest, :with => :render_404
end
如果引发ActionController :: InvalidCrossOriginRequest,则返回404。在本地环境中,它不会引发,这对于调试非常有用。对于这一部分,它正在工作。但是我想用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时发生错误。找不到调用特定网址的方法。
第二个问题,之前
不会更改Rails.application.config.consider_all_requests_local
状态。 我得到:
1) ApplicationController ActionController::InvalidCrossOriginRequest render 404 status Failure/Error: raise ActionController::InvalidCrossOriginRequest ActionController::InvalidCrossOriginRequest: ActionController::InvalidCrossOriginRequest
unless
尝试模拟它而不是设置:
发布allow(object).to receive_message_chain(:one, :two, :three).and_return(:four)
expect(object.one.two.three).to eq(:four)