【发布时间】:2019-04-11 18:55:26
【问题描述】:
我正在尝试存根从构造函数调用的全局函数。我正在使用 Rspec 和 Rspec-mocks。这是要测试的代码:
def foo
'foo'
end
class Bar
def initialize
@bar = foo
end
def bar
@bar
end
end
这是测试:
describe 'bar'
it 'calls foo' do
expect(self).to receive(:foo) { 'bar' }
expect(Bar.new.bar).to eq('bar')
end
end
测试失败并显示以下消息:
Failure/Error: expect(Bar.new.bar).to eq('bar')
expected: "bar"
got: "foo"
(compared using ==)
如何将全局函数foo 存根?
PS:如果从另一个全局函数调用 foo,expect(self).to receive(:foo) { 'bar' } 将按预期工作。
【问题讨论】:
标签: ruby rspec rspec-mocks