[rspec-users] hash form of stub_chain returning nil for chains with shared first message
frederick.cheung at gmail.com
Thu Feb 10 13:40:25 EST 2011
I'm new using rspec, so please forgive me if I'm barking up the wrong tree, but...
I'd expect this to pass (using rspec 2.5.1)
describe 'stub_chain' do
it "returns expected value from two chains with hash" do
subject = Object.new
subject.stub_chain(:msg1, :msg2 => :first)
subject.stub_chain(:msg1, :msg3 => :second)
But it doesn't - subject.msg1.msg3 returns nil
I think this is because in stub_chain (in rspec-mocks/lib/rspec/mocks/methods.rb, line 43) there is
if matching_stub = __mock_proxy.__send__(:find_matching_method_stub, chain.to_sym)
ie blk isn't used in any way. Changing this to matching_stub.invoke.stub_chain(*chain, &blk) makes my example pass
Is this true or am I just misusing rspec?
More information about the rspec-users