2016-03-19 13 views
0

Ich arbeite an Michael Hartls Ruby on Rails Tutorial. Ich bin auf Listing 8.10, wo ich den Integrationstest für das neu erstellte Login starte. Wenn ich den Test ausführen, bekomme ich 1 Fehler, der lautet:Der Name der falsch geschriebenen Datei kann nicht in der App gefunden werden.

UsersLoginTest#test_login_with_invalid_information: 
ActionController::RoutingError: uninitialized constant SessonsController 
test/integration/users_login_test.rb:8:in `block in class:UsersLoginTest>' 

1 runs, 1 assertions, 0 failures, 1 errors, 0 skips 

Gibt es etwas, was ich vermisst habe? Ich dachte, es sei eindeutig eine falsch geschriebene Datei "SessonsController" anstelle von "Sessions Controller", aber ich finde die falsch geschriebene Datei nicht. Ich habe auch ln8 in der Datei "test/integration/users_login_test.rb" überprüft und den Fehler nicht gefunden.

Wenn mir jemand damit helfen könnte, würde ich es sehr schätzen.

Hier ist ein Link auf die GitHub Repo: sample_app branch login-logout

Hier ist ein Link zum Tutorial Seite: Rails Tutorial

+0

Ihre Fehlermeldung ist nicht vollständig. Es sollte noch mehr geben. – sawa

+0

exec Rake Test TEST = Test/Integration/users_login_test.rb Run Optionen bündeln $: --seed 43995 # Running: E Finished in 1.265267s, 0,7903 Läufe/s, 0,7903 Behauptungen/s. 1) Fehler: UsersLoginTest # test_login_with_invalid_information: Action :: RoutingError: nicht initialisierte Konstante SessonsController Test/Integration/users_login_test.rb: 8: in 'Block in ‘ 1 läuft, 1 Behauptungen, 0 Fehler, 1 Fehler, 0 Überspringungen –

+0

Was Sie gezeigt haben, gehört nicht dazu. – sawa

Antwort

0

In test/integration/users_login_test.rb:8, müssen Sie SessonsController mit dem, was der Controller tatsächlich gestattet ersetzen (siehe Tippfehler?)

Im Allgemeinen müssen Sie sicherstellen, dass Ihre Dateien denselben Namen wie die Klassen/Module haben, die sie enthalten.

Zum Beispiel, wenn ich eine SessionController Klasse habe, aber es in einer foobar_controller.rb Datei gespeichert ist, wird es nicht geladen werden. Die Namen müssen genau übereinstimmen. Sogar ein extra s kann es abwerfen. SessionController ist nicht dasselbe wie SessionsController.

Wie auch immer, das Lernen zu debuggen ist eine wichtige Fähigkeit, die Hartls Tutorial Ihnen beibringen wird. Du wirst den Dreh raus bekommen.