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
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users