我正在升级旧的Rails 2.3 application
并发现大多数规格都失败了。
我正努力让他们过世。
到目前为止,大多数规范文件都没有包含require 'spec_helper'
,但需要添加。
(不知道之前为什么不存在)。
当我将spec_helper
添加到一些控制器时,我的错误堆栈级别太深(SystemStackError).
我目前正在运行如下,但我相信这可能是一个Rails 2.1应用程序开始。
文件顶部如下所示。 堆栈太深的错误导致测试集实际上根本不运行。 如果我注释掉前三行,那么测试至少会运行,尽管都会失败。
require 'spec_helper'
require 'active_merchant'
include ActiveMerchant::Billing
describe 'AccountsController' do
...
这是我在经过一些小小的尝试之后能够起床的堆栈跟踪。
2)
stack level too deep
../bin/ruby_noexec_wrapper:14:in `<main>'
../gems/activesupport-2.3.17/lib/active_support/dependencies.rb:170:in `load_with_new_constant_marking'
../gems/ruby-1.9.3-p392@project/gems/rspec-1.3.2/lib/spec/runner/example_group_runner.rb:15:in `block in load_files'
../rspec-1.3.2/lib/spec/runner/example_group_runner.rb:14:in `each'
../gems/rspec-1.3.2/lib/spec/runner/example_group_runner.rb:14:in `load_files'
../gems/rspec-1.3.2/lib/spec/runner/options.rb:134:in `run_examples'
../gems/rspec-1.3.2/lib/spec/runner.rb:61:in `run'
../gems/rspec-1.3.2/lib/spec/runner.rb:45:in `block in autorun'
../gems/activesupport-2.3.17/lib/active_support/dependencies.rb:186: stack level too deep (SystemStackError)
从哪里来?
答案 0 :(得分:0)
尝试将include ActiveMerchant::Billing
移动到describe块中,如下所示:
require 'spec_helper'
require 'active_merchant'
describe 'AccountsController' do
include ActiveMerchant::Billing
...
Dave Chelimsky撰写的Blogpost标题为RSpec waving 'bye bye' to implicit module inclusion