[rspec-users] Multiple calls to a class method

Ashley Moran work at ashleymoran.me.uk
Tue Jul 10 07:54:36 EDT 2007


Hi

Just wrote myself a Date.extract_from_rails_hash to handle parsing  
the "date(1i)", "date(2i)" parameters created in the controller  
params.  I've got a method that needs to call this either once or  
twice, depending on the contents of the form (one section of the form  
is rendered conditionally).  So I had two specs for the case where  
the second form section is included:

it "..." do
   Date.should_receive(:extract_from_rails_hash).
     with(REQUEST_ARGS_WITH_FINANCE_AGREEMENT 
[:vehicle], :registration_date).
     and_return(Date.new(2006, 12, 1))
   # ...
end

it "..." do
   Date.should_receive(:extract_from_rails_hash).
     with(REQUEST_ARGS_WITH_FINANCE_AGREEMENT 
[:finance_agreement], :start_date).
     and_return(Date.new(2006, 12, 4))
   # ...
end

In each of these specs I only care about one of the calls, but they  
fail because the Date method is being called twice, and it reports  
the other call as an error.

What is the thinking behind this?  I know you shouldn't have  
unspecified code, but it seems restrictive to force all calls to a  
method to be covered in the same example.

Thanks
Ashley



More information about the rspec-users mailing list