2017-09-10 1 views
0

ich mit einem einfachen Test begonnen haben:Rails ist mit Geräten ohne meine Erlaubnis

class UserTest < ActiveSupport::TestCase 
    test 'should not create user without email' do 
    user = User.new 
    assert_not user.save 
    end 
end 

Und Rails automatisch generiert einige Befestigungen:

one: 
    email: MyString 
    login_token: MyString 
    token_generated_at: 2017-09-10 17:24:55 

two: 
    email: MyString 
    login_token: MyString 
    token_generated_at: 2017-09-10 17:24:55 

So wie Sie habe ich nicht sehen kann benutze irgendwelche Fixtures für meinen Test. Aber wenn Sie den Test ausführen, wirft Rails eine Ausnahme:

Error: 
UserTest#test_should_not_create_user_without_email: 
ActiveRecord::RecordNotUnique: SQLite3::ConstraintException: UNIQUE constraint failed: users.email: INSERT INTO "users" ("email", "login_token", "token_date", "created_at", "updated_at", "id") VALUES ('MyString', 'MyString', '2017-09-10 17:24:55', '2017-09-10 15:48:11.483364', '2017-09-10 15:48:11.483364', 298486374) 

Zuerst thougt ich, ich könnte einfach die Geräte löschen. Aber später sollte es Geräte mit zum Beispiel nicht eindeutigen E-Mails geben.

Antwort

0

Um Fixtures laden zu können, benötigen Sie keine Berechtigungen. Von den documentation:

Die Testumgebung automatisch Last aller Armaturen in die Datenbank vor jedem Test. Um konsistente Daten sicherzustellen, löscht die -Umgebung die Fixtures, bevor sie den Ladevorgang ausführt.

Verwandte Themen