Verifying that RSpec mock object methods are called with a block.

P

Peter Havens

In RSpec, is there a way to verify that a mock object method was
called with a block? For example, something like this:

context "A mock object method" do
specify "should verify that it was called with a block" do
m = mock( "mock object" )
m.should_receive( :test_method ).with( :block )
m.test_method { :test_result }
end
end

Thanks,
Pete
 
D

David Chelimsky

In RSpec, is there a way to verify that a mock object method was
called with a block? For example, something like this:

context "A mock object method" do
specify "should verify that it was called with a block" do
m = mock( "mock object" )
m.should_receive( :test_method ).with( :block )
m.test_method { :test_result }
end
end

Officially, no. However we're in mid-stream towards supporting
something like this for 0.9 (currently available as a beta gem from .
Basically, anything you can say after "should " or "should_not " you
can pass to #with on a mock. So, in this case, because you can say:

obj.should be_an_instance_of(Proc)

you can also say:

m.should_receive( :test_method ).with(be_an_instance_of(Proc))

We haven't worked out the details of how we'll support this using
different names just yet, so for now you have to either use this
basically un-readable option (that works) or wrap it yourself in
something more pleasant.

Sooner or later we'll support this officially w/ nicer, more readable names.

Hope this helps in the mean time.

Cheers,
David
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,954
Messages
2,570,116
Members
46,704
Latest member
BernadineF

Latest Threads

Top