[rspec-users] database modifications not rolling back

David Smalley david.smalley.lists at googlemail.com
Fri Mar 2 13:18:58 EST 2007


Hi,

Since moving  this morning from 0.7.5.1 to 0.8.2 I've hit some  
problems and I'm not sure if it's something I'm doing wrong or a  
change in 0.8.2

Basically I dislike fixtures so I have been using a helper method to  
create an object I need frequently and setting it up in the setup  
method, in 0.7.5.1 this all worked fine - but since moving to 0.8.2  
I'm finding that the records are not removed from the database after  
each spec, leading to a failure on the next attempt to create the  
identical record (there is some uniqueness validation on the model).  
After all tests have finished the test database is populated entirely  
with all the records I have created, whereas on 0.7.5.1 I'd find this  
database completely empty on completion.

FYI - I'm using Rspec 0.8.2 with matching revision of rspec_on_rails,  
Rails 1.2.2 and Mysql.


spec_helper.rb

module CompetitionSpecHelper
   def new_competition
      code_to_create_a_new_competition
      return the competition
   end
end


competition_spec.rb

require File.dirname(__FILE__) + '/../spec_helper'

context "Given a visible competition" do
   include CompetitionSpecHelper

   setup do
     @competition = new_competition
     @competition.process!
   end

   specify "should return true for started?" do
     @competition.started? should == true
   end
......................


Is there something wrong with what I have been doing? All tests were  
passing before the upgrade, it'll take me a while to go through and  
change to fixtures if this isn't the correct way to do it. I had seen  
numerous discussion around Rspec that seemed to validate the way I've  
been doing things, in spirit at least.

Thanks,

David






More information about the rspec-users mailing list