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?
_______________________________________________
rspec-users mailing list
rspec...@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users
> 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?
Bug. Please file a bug report at http://github.com/rspec/rspec-mocks/issues.
Thx,
David
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.