Ich bin neu bei Rspec und Factory girl und möchte, dass mein Test auf einem bestimmten Datenbankstatus ausgeführt wird. Ich verstehe, dass ich Fabrikmädchen dazu bringen kann, diese Aufzeichnungen zu erstellen, und die Objekte werden nach dem Testlauf zerstört werden, aber was passiert, wenn ich Daten in der Datenbank habe.Rspec/FactoryGirl: Datenbankstatus löschen
Beispiel: Ich möchte, dass mein Test ausgeführt wird, wenn 3 Datensätze in der Datenbank vorhanden sind, die ich über Factory Girl erstellt habe. Allerdings habe ich derzeit bereits 1 Modell-Datensatz in der Datenbank, und ich möchte es nicht nur für den Test löschen. Dieses Modell zu zerstören ruiniert meinen Test.
Datenbank Inhalte
[#<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
Jetzt wird mein Test nicht bestehen, weil es falsch davon ausgehen, dass Trudy der höchsten Punktzahl ist, da der Test in ausgeführt haben ein falscher Zustand.
Bietet Factory-Girl trotzdem an, Datensätze aus der Datenbank zu löschen, dann Rollback dieses Löschen? Ähnlich wie es erstellt Datensätze in der Datenbank und Rollback
Bietet Factory-Girl trotzdem an, Datensätze aus der Datenbank zu löschen, dann Rollback dieses Löschen? Ähnlich wie es erstellt Datensätze in der Datenbank und Rollback – user2158382
Original-Frage scheint zu fragen, wie bestehende Datensätze intakt bleiben. Seine Frage nach dem Rückgängigmachen des Löschens ist eine Idee, aber ein anderer Ansatz könnte sein, das Löschen vollständig zu vermeiden. –
große Hilfe thx so viel – austin