使用rspec测试。consider_all_requests_local= false

问题描述 投票:2回答:2

我正在使用[[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

ruby-on-rails ruby rspec tdd rspec-rails
2个回答
3
投票
unless

尝试模拟它而不是设置:


1
投票
here

发布allow(object).to receive_message_chain(:one, :two, :three).and_return(:four) expect(object.one.two.three).to eq(:four)

© www.soinside.com 2019 - 2024. All rights reserved.