[rspec-users] Strange validation errors

jollyroger timo.roessner at googlemail.com
Mon Mar 15 07:54:22 EDT 2010


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


More information about the rspec-users mailing list