Immer wenn ich einen Benutzertest durchführe, verlässt RSpec den Fabricated-Benutzer in der Testdatenbank, nachdem der Test abgeschlossen wurde, was meine anderen Tests zunichte macht. Ich werde eine rake db:test:prepare
tun, aber wenn ich meine Tests erneut ausführen, wird der Datensatz in meiner Datenbank neu erstellt. Ich habe keine Ahnung, warum das passiert. Es passiert nur mit Benutzerobjekten.RSpec verlässt den Datensatz in der Testdatenbank
In meiner spec_helper Datei habe ich auch:
config.use_transactional_fixtures = true
Hier ist ein Beispiel Test, der einen Datensatz erzeugt:
it "creates a password reset token for the user" do
alice = Fabricate(:user)
post :create, email: alice.email
expect(assigns(alice.password_reset_token)).to_not eq(nil)
end
Verarbeiter:
Fabricator(:user) do
email { Faker::Internet.email }
password 'password'
name { Faker::Name.name }
end
dies alles habe zu mit meinem Benutzermodell machen?
Sehr alte Post, ich weiß, aber ich bin derzeit Probleme mit Daten gelöscht werden aus meiner Datenbank (ein Vermächtnis Projekt hat mich aufgenommen haben. Um klar zu sein, sagst du, dass alles innerhalb von "vorher: alle tun ... Ende" nicht transaktional ist? Warum sollte das so sein und ich habe mir einen Tag lang den Kopf darüber gekratzt, die Dokumentation ist sehr begrenzt.Dieser Code enthält beispielsweise 'before: all do User.delete_all end '. Edit: Ok gerade gefunden, das (https://relisapp.com/rspec/rspec-rails/docs/transactions). Wow, Zeit, um viel Code umzuformen ... um meine ursprüngliche Aufgabe zu erledigen, grrr! – wired00