Sounds like a validation failure. My guess is that you're re-using the factory-created record's attributes, and your example fails because of a uniqueness validation. This would explain the rollback if you're using the create! or save! method.
Pat On Dec 13, 2010, at 3:08 PM, djangst <djan...@gmail.com> wrote: > Hi, any idea what could cause the following error in a controller > test? > > "count should have been changed by 1, but was changed by 0" > > I'm posting to a create route using a lambda, similar to Hartl's > example in his Rails tutorial: > > it "should create a user" do > lambda do > post :create, :user => @attr > end.should change(User, :count).by(1) > end > > The only difference is I'm using a factory instead of an attribute > hash. I know the action works because I can perform it manually and my > model specs pass. > > More importantly, I can see the inserts (two rows, parent and child) > in my Postgres logs. And I see a rollback before the count is > selected. Could that be the cause? [I searched for a while and didn't > see much discussion about this, so probably not.] > _______________________________________________ > rspec-users mailing list > rspec-users@rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users