如何修复 RSpec SystemStackError
How to fix RSpec SystemStackError
给出的代码类似于
module UserDecorator
def profile
"Hi, my name is #{name}"
end
end
require 'rails_helper'
describe UserDecorator do
let(:user) { build(:user) }
let(:decorated_user) { user.decorate }
describe '#profile' do
it 'uses #name' do
expect(decorated_user).to receive(:name).and_call_original
decorated_revenue_report_view.profile
end
end
end
我收到以下错误:
1) UserDecorator#profile uses name
Failure/Error: Unable to find matching line from backtrace
SystemStackError:
stack level too deep
# /Users/agrimm/.rbenv/versions/2.1.6/lib/ruby/gems/2.1.0/gems/rspec-mocks-3.3.2/lib/rspec/mocks/argument_list_matcher.rb:65
#
# Showing full backtrace because every line was filtered out.
# See docs for RSpec::Configuration#backtrace_exclusion_patterns and
# RSpec::Configuration#backtrace_inclusion_patterns for more information.
这似乎是一个 heisen-bug - 如果我有一些其他规格 运行 首先,我没有得到 SystemStackError。
我该如何解决?
我正在使用 RSpec 3.3.0 和 Rails 4.1.13。
问题似乎是期望 decorated_user
接收 name
,而不是 user
。将规范更改为
require 'rails_helper'
describe UserDecorator do
let(:user) { build(:user) }
let(:decorated_user) { user.decorate }
describe '#profile' do
it 'uses User#name' do
expect(user).to receive(:name).and_call_original
decorated_revenue_report_view.profile
end
end
end
似乎解决了问题。我怀疑这与 decorated_user
将 name
委托给装饰对象 user
以及 RSpec 必须处理 name
有关,但我不能肯定。
这已被举报,所有者是 treating it as a bug。
给出的代码类似于
module UserDecorator
def profile
"Hi, my name is #{name}"
end
end
require 'rails_helper'
describe UserDecorator do
let(:user) { build(:user) }
let(:decorated_user) { user.decorate }
describe '#profile' do
it 'uses #name' do
expect(decorated_user).to receive(:name).and_call_original
decorated_revenue_report_view.profile
end
end
end
我收到以下错误:
1) UserDecorator#profile uses name
Failure/Error: Unable to find matching line from backtrace
SystemStackError:
stack level too deep
# /Users/agrimm/.rbenv/versions/2.1.6/lib/ruby/gems/2.1.0/gems/rspec-mocks-3.3.2/lib/rspec/mocks/argument_list_matcher.rb:65
#
# Showing full backtrace because every line was filtered out.
# See docs for RSpec::Configuration#backtrace_exclusion_patterns and
# RSpec::Configuration#backtrace_inclusion_patterns for more information.
这似乎是一个 heisen-bug - 如果我有一些其他规格 运行 首先,我没有得到 SystemStackError。
我该如何解决?
我正在使用 RSpec 3.3.0 和 Rails 4.1.13。
问题似乎是期望 decorated_user
接收 name
,而不是 user
。将规范更改为
require 'rails_helper'
describe UserDecorator do
let(:user) { build(:user) }
let(:decorated_user) { user.decorate }
describe '#profile' do
it 'uses User#name' do
expect(user).to receive(:name).and_call_original
decorated_revenue_report_view.profile
end
end
end
似乎解决了问题。我怀疑这与 decorated_user
将 name
委托给装饰对象 user
以及 RSpec 必须处理 name
有关,但我不能肯定。
这已被举报,所有者是 treating it as a bug。