Rspec / FactoryGirl: estado limpo do banco de dados
Eu sou novo no Rspec e no Factory girl e gostaria que meu teste fosse executado em um estado específico do banco de dados. Entendo que posso fazer com que o Factory girl crie esses registros, e os objetos serão destruídos após a execução do teste, mas o que acontece se eu tiver dados no banco de dados.
Por exemplo: quero que meu teste seja executado quando houver três registros no banco de dados que criei por meio do Factory Girl. No entanto, atualmente eu já tenho 1 registro de modelo no banco de dados e não quero excluí-lo apenas para o teste. Ter esse modelo lá estraga meu teste.
Conteúdo do banco de dados
[#<Leaderboard id: 1, score: 500, name: "Trudy">]
leaderboard_spec.rb
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
Agora, meu teste falhará porque assumirá incorretamente que Trudy é o maior pontuador, pois o teste foi executado em um estado incorreto.
A garota da fábrica oferece mesmo assim excluir os registros do banco de dados e reverter essa exclusão? Semelhante à maneira como ele cria registros no banco de dados e reversão