I want to use mocks and stubs to test the controller, but am having  
trouble getting my validation not to trigger. Here's the code:

# spec:

     Image.stub!(:find).and_return(@image)
     @image.should_receive(:save!).once.with(:any_args)
     put :update, :id => @image.id, :category_id =>  
@category.id, :image => {:name => 'test', :image_number => 13554}

#model

   validates_presence_of :name
   validates_uniqueness_of :name, :allow_nil => true

# rspec output

ActiveRecord::RecordInvalid in 'ImagesController should update a  
database record when it receives a PUT'
Validation failed: Name has already been taken, Image number has  
already been taken


It seems AR is not detecting that this is an edit/update that will  
not cause a uniqueness conflict. I believe the code in the model  
needs to remain in place because I don't want a user creating a name  
conflict by editing an existing name into one that already exists in  
the database. Any thoughts on how better to spec this?

Thanks
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to