title: Rspec/FactoryGirl: clean database state
body: <p>I am new to Rspec and Factory girl and would like my test to run on a specific database state. I understand I can get Factory girl to create these records, and the objects will be destroyed after the test run, but what happens if I have data in the database.</p>
  
  <p>For example: I want my test to run when there are 3 records in the database that I created through Factory Girl. However, I currently already have 1 model record in the database, and I don't want to delete it just for the test. Having that 1 model in there ruins my test.</p>
  
  <p><strong>Database Content</strong></p>
  
  <pre><code>[#&lt;Leaderboard id: 1, score: 500, name: "Trudy"&gt;]
  </code></pre>
  
  <p><strong>leaderboard_spec.rb</strong></p>
  
  <pre><code>require 'spec_helper'
  
  describe Rom::Leaderboard do
  
      describe "poll leaderboard" do
          it "should say 'Successful Run' when it returns" do
              FactoryGirl.create(:leaderboard, score: 400, name: "Alice")
              FactoryGirl.create(:leaderboard, score: 300, name: "Bob")
              FactoryGirl.create(:leaderboard, score: 200, name: "John")
              Leaderboard.highest_scorer.name.should == "Alice"
          end
      end
  
  end
  </code></pre>
  
  <p>Now my test will fail because it will incorrectly assume that Trudy is the highest scorer, since the test have run in an incorrect state.</p>
  
  <p>Does factory girl offer anyway to delete records from the database then rollback this delete? Similar to how it creates records in the database and rollsback</p>