Passing a block to a stub method

It seems that rspec doesn’t support passing a block to a stub method.
This code fails:

def call_build_with_block(o)
o.build do
puts “hello”
end
end

describe “call_build_with_block” do
it “should call build with block” do
o = double(“object”)
o.should_receive(:build) do |&b|
b.should_not be_nil
block_given?.should == true
end

call_build_with_block(o)

end
end

Anybody?

On Sep 13, 2010, at 5:32 PM, nicolas wrote:

describe “call_build_with_block” do

Anybody?

Bug. Please file a bug report at
Issues · rspec/rspec-mocks · GitHub.

Thx,
David

On Sep 13, 6:32 pm, nicolas [email protected] wrote:

it “should call build with block” do
Anybody?


rspec-users mailing list
[email protected]://rubyforge.org/mailman/listinfo/rspec-users

What you can use is the “and_yield” method:

o.should_receive(:build).and_yield do |eval_context|
eval_context.should_not be_nil
end

Hope that helps.