1
我無法模擬注入的對象。例如:Rspec:模擬嵌套/依賴項注入對象
class Foo
def initialize(bar = Bar.new)
@bar = bar
end
def run
@bar.do_something_cool
end
end
# Rspec
describe Foo do
it "should do something cool" do
mock_bar = mock("bar")
mock_bar.stub(:do_something_cool).and_return(nil)
real_foo = Foo.new(mock_bar)
real_foo.run
mock_bar.should_receive(:do_something_cool).once
end
end
如果我運行這個,規範失敗,因爲它說「do_something_cool」永遠不會被調用。
expected: 1 time
received: 0 times
但是,如果我不存根 「do_something_cool」,我得到以下錯誤
Mock "bar" received unexpected message :do_something_cool with (no args)
任何想法?
哦,謝謝!像魅力一樣工作! – Terenced
太棒了!愉快的RSpecing。 :) –
我一直希望RSpec的DSL可以讓模擬對象以稍微少一些的前後方式使用,例如:'expect {some_code} .to調用(mock,:do_something_cool).once' – d11wtq