我试图存根从构造函数调用的全局函数。我正在使用 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:如果从另一个全局函数调用,则按expect(self).to receive(:foo) { 'bar' }
预期工作。foo