2017-12-18 1 views
2

Ich habe Probleme mit meinem Projekt in Schienen ich lerne von railstutorial.org und ich habe Problem in Listing ~ 6,18 Das ist also Repo https://github.com/Mroczeks/first_project Und das ist Fehler finden :Benutzer können nicht ohne ID Hartl Schienen Tutorial

rails test 
Running via Spring preloader in process 10776 
Started with run options --seed 33787 

FAIL["test_schould_be_valid", UserTest, 0.6801217989996076] 
test_schould_be_valid#UserTest (0.68s) 
     Expected false to be truthy. 
     test/models/user_test.rb:9:in `block in <class:UserTest>' 

ERROR["test_email_addresses_should_be_saved_as_lower-case", UserTest, 0.6879979369996363] 
test_email_addresses_should_be_saved_as_lower-case#UserTest (0.69s) 
ActiveRecord::RecordNotFound:   ActiveRecord::RecordNotFound: Couldn't find User without an ID 
      test/models/user_test.rb:45:in `block in <class:UserTest>' 

FAIL["test_email_validation_should_accept_valid_addresses", UserTest, 0.7056386839994957] 
test_email_validation_should_accept_valid_addresses#UserTest (0.71s) 
     "[email protected]" should be valid 
     test/models/user_test.rb:32:in `block (2 levels) in <class:UserTest>' 
     test/models/user_test.rb:30:in `each' 
     test/models/user_test.rb:30:in `block in <class:UserTest>' 

    18/18: [=================================] 100% Time: 00:00:00, Time: 00:00:00 

Finished in 0.78367s 
18 tests, 29 assertions, 2 failures, 1 errors, 0 skips 
+0

Was befindet sich in der Datei 'test/models/user_test.rb'? –

+0

Test für Modellbenutzer (Name, E-Mail und Pass in bcrypt) So testen ich zum Beispiel das Passwort ist leer oder hat eine bestimmte Anzahl von Zeichen. – Drekoo

+0

https://github.com/Mroczeks/first_project/blob/master/test/models/user_test.rb – Drekoo

Antwort

3

Die Ursache für diesen Fehler scheinen Validierungen werden Fehler, wenn Ihr @user Objekt in user_test.rb Datei zu speichern. Versuchen Sie diesen Test mit folgenden Code zu ersetzen, und Sie werden die fehlerhafte Validierung sehen, wenn Sie diesen Test ausführen:

test "email addresses should be saved as lower-case" do 
    mixed_case_email = "[email protected]" 
    @user.email = mixed_case_email 

    # Calling `save!` here will raise an exception if failed to save @user. 
    @user.save! 
    assert_equal mixed_case_email.downcase, @user.reload.email 
end 

Fix Ihre setup Methode alle Validierungen entsprechend gerecht zu werden und versuchen Sie es erneut.

3

In User Modell haben Sie defined password length validation 6 als Minimum zu sein, aber in Testaufbau, created the user mit password: 'pies'. Daher werden alle, Sie werden immer die Fehler und Ausfälle:

FAIL["test_schould_be_valid", UserTest, 0.6801217989996076] 
test_schould_be_valid#UserTest (0.68s) 
    Expected false to be truthy. 
    test/models/user_test.rb:9:in `block in <class:UserTest>' 

Um alle Fehler zu beheben, müssen Sie einen Benutzer mit gültigen Daten in UserTest#setup initialisieren. In diesem Fall müssen Sie nur ein Kennwort mit einer Mindestlänge von 6 angeben.

Verwandte Themen