Я новичок в Rspec и Factory girl и хотел бы, чтобы мой тест работал в определенном состоянии базы данных. Я понимаю, что я могу заставить Factory girl создать эти записи, и объекты будут уничтожены после тестового прогона, но что произойдет, если у меня есть данные в базе данных.
Например: я хочу, чтобы мой тест запускался, когда в базе данных было 3 записи, которые я создал через Factory Girl. Однако в настоящее время у меня уже есть одна модельная запись в базе данных, и я не хочу ее удалять только для теста. Наличие этой 1 модели там разрушает мой тест.
Содержимое базы данных
[#<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
Теперь мой тест потерпит неудачу, потому что он ошибочно предположит, что Trudy является самым лучшим бомбардиром, поскольку тест прошел в неправильном состоянии.
Предполагается ли фабричная девушка в любом случае удалить записи из базы данных, а затем отменить это удаление? Подобно тому, как он создает записи в базе данных и rollsback