[rspec-users] Weird failing spec

Ashley Moran work at ashleymoran.me.uk
Fri Oct 26 15:28:34 EDT 2007


On Oct 26, 2007, at 5:39 pm, Tarsoly András wrote:

> http://pastie.caboo.se/111221
>
> I've tried everything, like stubbing out :update_attributes! , even  
> tested it in real-life and it works like a charm: updates / creates  
> new records nicely and everything else is working properly.

First, like David said earlier, you're putting too much into one spec:

   it "should retrieve the Option instance identified by ID" do
     CalciumOption.should_receive(:find).with("1").and_return(@option)
     @option.should_receive(:update_attributes!).with 
(invalid_option_attributes).and_raise(ActiveRecord::RecordInvalid)
     post :update, :id => 1, :option => invalid_option_attributes
   end

should really be

   it "should retrieve the Option instance identified by ID" do
     CalciumOption.should_receive(:find).with("1").and_return(@option)
     post :update, :id => 1, :option => invalid_option_attributes
   end

   it "should update the Option instance's attributes" do
     @option.should_receive(:update_attributes!).with 
(invalid_option_attributes).and_raise(ActiveRecord::RecordInvalid)
     post :update, :id => 1, :option => invalid_option_attributes
   end

Also I don't think you need '@option = ' in front of  
@option.update_attributes!, as that method call modifies the object  
in-place.  But that's a Rails issue.

One other thing - you aren't stubbing CalcumOption.find in  
'Admin::OptionsController, "#update (POST) with valid params"'.  Are  
you sure this isn't loading real models?


As for the actual problem you asked about... sorry but I am lost.   
I've looked over it about 5 times and everything I thought was wrong  
was me not paying attention.  I can't see ANY reason it should fail.   
Is it still not working?

Ashley



-- 
blog @ http://aviewfromafar.net/
linked-in @ http://www.linkedin.com/in/ashleymoran
currently @ home



More information about the rspec-users mailing list