Hey Ich habe einen Test, wie dieseRails 4 Test Benutzerinitialisierung ist immer leer
test 'create account' do
if User.create(email: '[email protected]', password: 'blahblah')
assert true
else
assert User.msg
end
end
Aber wenn ich es versuche zu laufen sieht Ich erhalte eine Fehlermeldung wie folgt aus:
1) Error:
UserTest#test_create_account:
ActiveRecord::RecordNotUnique: PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_users_on_email"
DETAIL: Key (email)=() already exists.
: INSERT INTO "users" ("created_at", "updated_at", "id") VALUES ('2013-10-16 21:59:54', '2013-10-16 21:59:54', 298486374)
Das sieht für mich so aus, als ob ich die E-Mail nicht initialisiert hätte, aber so wie ich das verstehe, sollte das mit meinem oben erstellen initialisiert werden. Ich verwende starke Parameter, daher habe ich kein attr_accessable aktiviert und kann das durchspielen. Weiß jemand, was das verursachen könnte? Wenn Sie weitere Informationen wünschen, lassen Sie es mich wissen.
Sie haben definitiv eine eindeutige Validierung für Ihr E-Mail-Attribut. Dies führt zu einem Fehler, da [email protected] bereits mit einem anderen Benutzer erstellt wurde und/oder in Ihrer Datenbank gespeichert ist. Wenn Sie den E-Mail-Parameter ändern, erhalten Sie den gleichen Fehler? Was ist, wenn Sie es zweimal ausführen? – JeremyS
@ JeremyS Danke für die Hilfe! Ich habe versucht, es zu ändern und sogar mit etwas völlig Einzigartigem bekomme ich den gleichen genauen Fehler. Wenn Sie sich das SQL ansehen, sieht es nur so aus, als ob created_at, update_at und id eingefügt werden. – Lethjakman
probiere 'email:" #{SecureRandom.uuid}@test.com "' – house9