2017-09-10 2 views
0

J'ai commencé avec un test simple:Rails utilisent des appareils sans ma permission

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

Et Rails quelques accessoires auto-générés:

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 

Comme vous pouvez le voir, je ne l'ai pas utiliser les appareils pour mon test. Mais lors de l'exécution du test, Rails lance une exception:

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) 

Au début, je thougt je pouvais simplement supprimer les montages. Mais plus tard, il devrait y avoir des appareils avec, par exemple, un courriel non unique.

Répondre

0

Afin de charger des appareils, Rails n'a pas besoin de vos permissions. De l'documentation:

L'environnement de test sera automatiquement charge tous les appareils dans la base de données avant chaque test. Pour garantir la cohérence des données, l'environnement supprime les appareils avant d'exécuter le chargement.