2014-11-04 12 views
5

Ich befolge Michael Hartls "Ruby on Rails Tutorial: Learn Web Development" und erstelle die Tests, die den Namen und die E-Mail eines Benutzers auf die Gültigkeit der Länge prüfen (Name als Maximum von 50 Zeichen, E-Mail als 255 Zeichen). Der Inhalt test/helpers/application_helper_test.rb sind:MiniTest Fehler: "NameError: nicht initialisierte Konstante"

require 'test_helper' 

class ApplicationHelperTest < ActionView::TestCase 
    test "full_title_helper" do 
    assert_equal full_title,   FILL_IN 
    assert_equal full_title("Help"), FILL_IN 
    end 
end 

Nach bundle exec rake test läuft, alle Tests bestanden, aber ich sehe das als Fehler markiert folgende Meldung am Ende:

ERROR["test_full_title_helper", ApplicationHelperTest, 1.820016791] 
test_full_title_helper#ApplicationHelperTest (1.82s) 
NameError:   NameError: uninitialized constant ApplicationHelperTest::FILL_IN 
     test/helpers/application_helper_test.rb:5:in `block in <class:ApplicationHelperTest>' 
    test/helpers/application_helper_test.rb:5:in `block in <class:ApplicationHelperTest>' 

Irgendwelche Ideen, wie zu beheben Dies?

+3

Ich kann mir vorstellen, 'FILL_IN' als eine Art Übung werden soll ausgefüllt oder etwas, nicht wörtlich verwendet. –

+1

Genau. Wenn Sie die Fehlermeldung sorgfältig lesen, sagt Ihnen Ruby, dass es nicht weiß, was 'FILL_IN' ist. Lesen Sie die Übungsbeschreibung https://www.railstutorial.org/book/filling_in_the_layout#sec-layout_exercises –

+1

Sie haben absolut Recht, das war das Problem. Ich ersetzte FILL_IN durch "Ruby on Rails-Tutorial-Beispiel-App" und "Hilfe | Ruby on Rails-Tutorial-Beispiel-App", wodurch der Fehler behoben wurde. Vielen Dank! – hworth

Antwort

7

Das Problem ist FILL_IN ist nicht der literale Titel (offensichtlich), also muss es mit "Hilfe | Ruby on Rails Tutorial Beispiel App" bzw. "Ruby on Rails Tutorial Beispiel App" ersetzt werden. Danke Nick Veys und p11y für diese Antwort.

0

Die FILL_IN Konstanten kann ersetzt werden durch: Name,: E-Mail

class User < ActiveRecord::Base 
#... 
has_many :microposts 
validates :name, presence: true 
validates :email, presence: true 
#...