Hi everyone, I have a test for importing vcards, and I was finding that each time it was being run, it was generating new photos and since it was using the test database, it was actually overwriting real photos that were being stored in the file system (they are named based on the record's id). So it was apparent to me that I need to use mocking to intercept Photo.create so that it doesn't really happen...
I tried to do this, but I am getting this MockExpectationError, which I don't quite understand the meaning of :[]= --- The relationships are: Photo belongs_to :contact Contact has_one :photo --- this is how I am mocking in my test: @photo = mock_model(Photo) Photo.should_receive(:create).and_return(@photo) --- the relevant code that is getting called to create the photo: def card_photo @contact.photo = Photo.create(:image_file_string => @card.photos.first) end --- And... the error: 1) Spec::Mocks::MockExpectationError in 'Vcard importing a vcard a card with an invalid address, a photo, birthday, url, phone, and email should update an existing contact when an email is found' Mock "Photo_1001" received unexpected message :[]= with ("contact_id", 201) /Library/Ruby/Gems/1.8/gems/activerecord-2.3.5/lib/active_record/associations/association_proxy.rb:185:in `set_belongs_to_association_for' /Library/Ruby/Gems/1.8/gems/activerecord-2.3.5/lib/active_record/associations/has_one_association.rb:56:in `replace' /Library/Ruby/Gems/1.8/gems/activerecord-2.3.5/lib/active_record/associations.rb:1281:in `photo=' /Library/Ruby/Gems/1.8/gems/activerecord-2.3.5/lib/active_record/associations/association_proxy.rb:217:in `send' /Library/Ruby/Gems/1.8/gems/activerecord-2.3.5/lib/active_record/associations/association_proxy.rb:217:in `method_missing' /Users/patrick/coding/rails/xyz/app/models/vcard.rb:164:in `card_photo' ---- Any ideas? Thanks.. Patrick J. Collins http://collinatorstudios.com _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users