On Sep 13, 6:32 pm, nicolas <[email protected]> wrote:
> 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?
> _______________________________________________
> rspec-users mailing list
> [email protected]http://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.
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to