Hey guys, I''m having a serious rspec-problem at the moment: I keep getting strange, empty validation errors when I run the whole spec-suite: ################################################################# 1) ActiveRecord::RecordInvalid in ''LikesController DELETE destroy'' should change like-count'' Validation failed: my_project/vendor/bundled_gems/gems/activerecord-2.3.5/lib/ active_record/validations.rb:1090:in `save_without_dirty!'' my_project/vendor/bundled_gems/gems/activerecord-2.3.5/lib/ active_record/dirty.rb:87:in `save_without_transactions!'' my_project/vendor/bundled_gems/gems/activerecord-2.3.5/lib/ active_record/transactions.rb:200:in `save!'' my_project/vendor/bundled_gems/gems/activerecord-2.3.5/lib/ active_record/connection_adapters/abstract/database_statements.rb: 136:in `transaction'' my_project/vendor/bundled_gems/gems/activerecord-2.3.5/lib/ active_record/transactions.rb:182:in `transaction'' my_project/vendor/bundled_gems/gems/activerecord-2.3.5/lib/ active_record/transactions.rb:200:in `save!'' my_project/vendor/bundled_gems/gems/activerecord-2.3.5/lib/ active_record/transactions.rb:208:in `rollback_active_record_state!'' my_project/vendor/bundled_gems/gems/activerecord-2.3.5/lib/ active_record/transactions.rb:200:in `save!'' my_project/vendor/bundled_gems/gems/factory_girl-1.2.3/lib/ factory_girl/proxy/create.rb:6:in `result'' my_project/vendor/bundled_gems/gems/factory_girl-1.2.3/lib/ factory_girl/factory.rb:316:in `run'' my_project/vendor/bundled_gems/gems/factory_girl-1.2.3/lib/ factory_girl/factory.rb:260:in `create'' my_project/vendor/bundled_gems/gems/factory_girl-1.2.3/lib/ factory_girl/proxy/build.rb:17:in `associate'' my_project/vendor/bundled_gems/gems/factory_girl-1.2.3/lib/ factory_girl/attribute/association.rb:15:in `add_to'' my_project/vendor/bundled_gems/gems/factory_girl-1.2.3/lib/ factory_girl/factory.rb:313:in `run'' my_project/vendor/bundled_gems/gems/factory_girl-1.2.3/lib/ factory_girl/factory.rb:311:in `each'' my_project/vendor/bundled_gems/gems/factory_girl-1.2.3/lib/ factory_girl/factory.rb:311:in `run'' my_project/vendor/bundled_gems/gems/factory_girl-1.2.3/lib/ factory_girl/factory.rb:260:in `create'' my_project/vendor/bundled_gems/gems/factory_girl-1.2.3/lib/ factory_girl/factory.rb:291:in `send'' my_project/vendor/bundled_gems/gems/factory_girl-1.2.3/lib/ factory_girl/factory.rb:291:in `default_strategy'' my_project/vendor/bundled_gems/gems/factory_girl-1.2.3/lib/ factory_girl.rb:21:in `Factory'' ./spec/controllers/likes_controller_spec.rb:46: ################################################################# Here is the corresponding spec: ################################################################# it "should change like-count" do we_are_logged_in_as(get_member_user) entry = Factory(:entry) Factory(:like, :user => get_member_user, :entry => entry) lambda do post ''destroy'', :entry_id => entry.id end.should change(Like, :count).by(-1) response.should be_success end ################################################################# Trouble-Shooting turns out to be difficult: The spec itself seems to be correct, when running the spec-file alone I don''t get any errors. I only get this error when running the whole spec-suite - running the single spec file is fine: ################################################################# spec spec/controllers/likes_controller_spec.rb Example disabled: should change like-count on success ... Finished in 0.756284 seconds 3 examples, 0 failures ################################################################# I have a lot of other specs failing in the very same way. The errors itself are confusing - empty validation error messages are utterly meaningless. I suspect that there is something going wrong with all the stubbing / mocking within in my specs. To be concrete: I suspect that something like: Foo.any_instance.stubs(:bar).returns.... within a spec isn''t properly isolated from the other specs, thus causing strange validation errors. What do you guys think? How could I narrow down this error further? Sys-Info: OS: Ubuntu 9.10 spec -v rspec 1.3.0 Mocking / Stubbing: Mocha 0.9.8
On Mon, Mar 15, 2010 at 6:54 AM, jollyroger <timo.roessner at googlemail.com> wrote:> Hey guys, > > I''m having a serious rspec-problem at the moment: > > I keep getting strange, empty validation errors when I run the whole > spec-suite: > > ################################################################# > 1) > ActiveRecord::RecordInvalid in ''LikesController DELETE destroy'' should > change like-count'' > Validation failed: > my_project/vendor/bundled_gems/gems/activerecord-2.3.5/lib/ > active_record/validations.rb:1090:in `save_without_dirty!'' > my_project/vendor/bundled_gems/gems/activerecord-2.3.5/lib/ > active_record/dirty.rb:87:in `save_without_transactions!'' > my_project/vendor/bundled_gems/gems/activerecord-2.3.5/lib/ > active_record/transactions.rb:200:in `save!'' > my_project/vendor/bundled_gems/gems/activerecord-2.3.5/lib/ > active_record/connection_adapters/abstract/database_statements.rb: > 136:in `transaction'' > my_project/vendor/bundled_gems/gems/activerecord-2.3.5/lib/ > active_record/transactions.rb:182:in `transaction'' > my_project/vendor/bundled_gems/gems/activerecord-2.3.5/lib/ > active_record/transactions.rb:200:in `save!'' > my_project/vendor/bundled_gems/gems/activerecord-2.3.5/lib/ > active_record/transactions.rb:208:in `rollback_active_record_state!'' > my_project/vendor/bundled_gems/gems/activerecord-2.3.5/lib/ > active_record/transactions.rb:200:in `save!'' > my_project/vendor/bundled_gems/gems/factory_girl-1.2.3/lib/ > factory_girl/proxy/create.rb:6:in `result'' > my_project/vendor/bundled_gems/gems/factory_girl-1.2.3/lib/ > factory_girl/factory.rb:316:in `run'' > my_project/vendor/bundled_gems/gems/factory_girl-1.2.3/lib/ > factory_girl/factory.rb:260:in `create'' > my_project/vendor/bundled_gems/gems/factory_girl-1.2.3/lib/ > factory_girl/proxy/build.rb:17:in `associate'' > my_project/vendor/bundled_gems/gems/factory_girl-1.2.3/lib/ > factory_girl/attribute/association.rb:15:in `add_to'' > my_project/vendor/bundled_gems/gems/factory_girl-1.2.3/lib/ > factory_girl/factory.rb:313:in `run'' > my_project/vendor/bundled_gems/gems/factory_girl-1.2.3/lib/ > factory_girl/factory.rb:311:in `each'' > my_project/vendor/bundled_gems/gems/factory_girl-1.2.3/lib/ > factory_girl/factory.rb:311:in `run'' > my_project/vendor/bundled_gems/gems/factory_girl-1.2.3/lib/ > factory_girl/factory.rb:260:in `create'' > my_project/vendor/bundled_gems/gems/factory_girl-1.2.3/lib/ > factory_girl/factory.rb:291:in `send'' > my_project/vendor/bundled_gems/gems/factory_girl-1.2.3/lib/ > factory_girl/factory.rb:291:in `default_strategy'' > my_project/vendor/bundled_gems/gems/factory_girl-1.2.3/lib/ > factory_girl.rb:21:in `Factory'' > ./spec/controllers/likes_controller_spec.rb:46: > ################################################################# > > Here is the corresponding spec: > > ################################################################# > ? ?it "should change like-count" do > ? ? ?we_are_logged_in_as(get_member_user) > ? ? ?entry = Factory(:entry) > ? ? ?Factory(:like, :user => get_member_user, :entry => entry) > ? ? ?lambda do > ? ? ? ?post ''destroy'', :entry_id => entry.id > ? ? ?end.should change(Like, :count).by(-1) > ? ? ?response.should be_success > ? ?end > ################################################################# > > Trouble-Shooting turns out to be difficult: > > The spec itself seems to be correct, when running the spec-file alone > I don''t get any errors. > I only get this error when running the whole spec-suite - running the > single spec file is fine: > > ################################################################# > spec spec/controllers/likes_controller_spec.rb > Example disabled: should change like-count on success > ... > > Finished in 0.756284 seconds > > 3 examples, 0 failures > ################################################################# > > I have a lot of other specs failing in the very same way. > The errors itself are confusing - empty validation error messages are > utterly meaningless. > > I suspect that there is something going wrong with all the stubbing / > mocking within in my specs. > > To be concrete: > > I suspect that something like: > > Foo.any_instance.stubs(:bar).returns.... > > within a spec isn''t properly isolated from the other specs, thus > causing strange validation errors. > > What do you guys think? > How could I narrow down this error further? > > Sys-Info: > OS: Ubuntu 9.10 > spec -v > rspec 1.3.0 > Mocking / Stubbing: Mocha 0.9.8Take a look at this thread and see if it helps: http://groups.google.com/group/mocha-developer/browse_thread/thread/5c2b8b28f700bb17?hl=en
Hey David, I experienced similar problems as depicted above in other projects now as well. E.g. a wrong-used stub in an it-block overwrote stubs established in helper functions for the whole spec-file etc. This was a mocha-related problem, I know that for sure cause when I swapped out mocha for rspec-stubbing everything behaved as expected. I now switched from mocha to rspec-stubbing / mocking, and so far, works like a charm - thanks for your time and help. On Mar 15, 1:40?pm, David Chelimsky <dchelim... at gmail.com> wrote:> On Mon, Mar 15, 2010 at 6:54 AM, jollyroger > > > > <timo.roess... at googlemail.com> wrote: > > Hey guys, > > > I''m having a serious rspec-problem at the moment: > > > I keep getting strange, empty validation errors when I run the whole > > spec-suite: > > > ################################################################# > > 1) > > ActiveRecord::RecordInvalid in ''LikesController DELETE destroy'' should > > change like-count'' > > Validation failed: > > my_project/vendor/bundled_gems/gems/activerecord-2.3.5/lib/ > > active_record/validations.rb:1090:in `save_without_dirty!'' > > my_project/vendor/bundled_gems/gems/activerecord-2.3.5/lib/ > > active_record/dirty.rb:87:in `save_without_transactions!'' > > my_project/vendor/bundled_gems/gems/activerecord-2.3.5/lib/ > > active_record/transactions.rb:200:in `save!'' > > my_project/vendor/bundled_gems/gems/activerecord-2.3.5/lib/ > > active_record/connection_adapters/abstract/database_statements.rb: > > 136:in `transaction'' > > my_project/vendor/bundled_gems/gems/activerecord-2.3.5/lib/ > > active_record/transactions.rb:182:in `transaction'' > > my_project/vendor/bundled_gems/gems/activerecord-2.3.5/lib/ > > active_record/transactions.rb:200:in `save!'' > > my_project/vendor/bundled_gems/gems/activerecord-2.3.5/lib/ > > active_record/transactions.rb:208:in `rollback_active_record_state!'' > > my_project/vendor/bundled_gems/gems/activerecord-2.3.5/lib/ > > active_record/transactions.rb:200:in `save!'' > > my_project/vendor/bundled_gems/gems/factory_girl-1.2.3/lib/ > > factory_girl/proxy/create.rb:6:in `result'' > > my_project/vendor/bundled_gems/gems/factory_girl-1.2.3/lib/ > > factory_girl/factory.rb:316:in `run'' > > my_project/vendor/bundled_gems/gems/factory_girl-1.2.3/lib/ > > factory_girl/factory.rb:260:in `create'' > > my_project/vendor/bundled_gems/gems/factory_girl-1.2.3/lib/ > > factory_girl/proxy/build.rb:17:in `associate'' > > my_project/vendor/bundled_gems/gems/factory_girl-1.2.3/lib/ > > factory_girl/attribute/association.rb:15:in `add_to'' > > my_project/vendor/bundled_gems/gems/factory_girl-1.2.3/lib/ > > factory_girl/factory.rb:313:in `run'' > > my_project/vendor/bundled_gems/gems/factory_girl-1.2.3/lib/ > > factory_girl/factory.rb:311:in `each'' > > my_project/vendor/bundled_gems/gems/factory_girl-1.2.3/lib/ > > factory_girl/factory.rb:311:in `run'' > > my_project/vendor/bundled_gems/gems/factory_girl-1.2.3/lib/ > > factory_girl/factory.rb:260:in `create'' > > my_project/vendor/bundled_gems/gems/factory_girl-1.2.3/lib/ > > factory_girl/factory.rb:291:in `send'' > > my_project/vendor/bundled_gems/gems/factory_girl-1.2.3/lib/ > > factory_girl/factory.rb:291:in `default_strategy'' > > my_project/vendor/bundled_gems/gems/factory_girl-1.2.3/lib/ > > factory_girl.rb:21:in `Factory'' > > ./spec/controllers/likes_controller_spec.rb:46: > > ################################################################# > > > Here is the corresponding spec: > > > ################################################################# > > ? ?it "should change like-count" do > > ? ? ?we_are_logged_in_as(get_member_user) > > ? ? ?entry = Factory(:entry) > > ? ? ?Factory(:like, :user => get_member_user, :entry => entry) > > ? ? ?lambda do > > ? ? ? ?post ''destroy'', :entry_id => entry.id > > ? ? ?end.should change(Like, :count).by(-1) > > ? ? ?response.should be_success > > ? ?end > > ################################################################# > > > Trouble-Shooting turns out to be difficult: > > > The spec itself seems to be correct, when running the spec-file alone > > I don''t get any errors. > > I only get this error when running the whole spec-suite - running the > > single spec file is fine: > > > ################################################################# > > spec spec/controllers/likes_controller_spec.rb > > Example disabled: should change like-count on success > > ... > > > Finished in 0.756284 seconds > > > 3 examples, 0 failures > > ################################################################# > > > I have a lot of other specs failing in the very same way. > > The errors itself are confusing - empty validation error messages are > > utterly meaningless. > > > I suspect that there is something going wrong with all the stubbing / > > mocking within in my specs. > > > To be concrete: > > > I suspect that something like: > > > Foo.any_instance.stubs(:bar).returns.... > > > within a spec isn''t properly isolated from the other specs, thus > > causing strange validation errors. > > > What do you guys think? > > How could I narrow down this error further? > > > Sys-Info: > > OS: Ubuntu 9.10 > > spec -v > > rspec 1.3.0 > > Mocking / Stubbing: Mocha 0.9.8 > > Take a look at this thread and see if it helps: > > http://groups.google.com/group/mocha-developer/browse_thread/thread/5... > _______________________________________________ > rspec-users mailing list > rspec-us... at rubyforge.orghttp://rubyforge.org/mailman/listinfo/rspec-users