gpt4 book ai didi

ruby-on-rails-3 - 为什么考虑_all_requests_local 使用 rspec 配置失败

转载 作者:行者123 更新时间:2023-12-04 01:40:20 25 4
gpt4 key购买 nike

rspec 导轨 (2.7.0) 导轨 (3.0.10)
发帖:Rails 3.1 Error Catching与我无关。

代码:

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

我得到:

...=====From bottom======true .=====From bottom======true .=====From bottom======true .=====From bottom======true



如此尝试
before do
Rails.application.config.consider_all_requests_local = false
end

所以我得到:

...=====From bottom======false .=====From bottom======false .=====From bottom======false .=====From bottom======false



这怎么可能呢? ...与更改 spec_helper 相同
config.before(:each) do
Rails.application.config.consider_all_requests_local = false
end

除非不工作。 顶部 使用 rspec 无法访问部分...总是命中 底部 为什么 ?我认为它现在与 Rack 有某种联系……但是有没有任何解决方案可以在 rspec 中动态改变这种行为?

问候

最佳答案

好的,我找到了很简单的解决方案

before do
Rails.application.config.consider_all_requests_local = false
load "application_controller.rb"
end

after do
Rails.application.config.consider_all_requests_local = true
load "application_controller.rb"
end

它是匿名应用程序 Controller 测试套件的一部分。

您必须在块之后添加...因为此更改将通过其他套件持续存在。

欢迎任何改进:D

编辑:使用 spork 和 guard 有时会导致我出现随机错误......之前:似乎都解决了这个问题

关于ruby-on-rails-3 - 为什么考虑_all_requests_local 使用 rspec 配置失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9008520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com