Ich arbeite auf Schienen mit Rspec, Rspec-Schienen, Gurke und Webrat. Ich versuche, BDD und Tests im Allgemeinen zu lernen. ich eine Gurke Szenario wie dieses:Gurke: Rails dynamic find funktioniert nicht in paths.rb
Scenario: Questions List
Given quiz titled "Pearl Jam" has questions named "Corduroy, Dissident"
When I go to the experiment page for quiz titled "Pearl Jam"
Then I should see "Corduroy"
And I should see "Dissident"
I alrady Schritt 1 hinzugefügt haben, wo ich erstellen und ein Quiz speichern richtig (I durch Puts getestet). Jetzt arbeite ich an Schritt 2. Ich bin
when /^the experiment page for quiz titled "(.*)"$/i
new_quiz_experiment_path(Quiz.find_by_title($1))
find_by_title
nicht funktioniert Aus irgendeinem Grund einen neuen Weg in paths.rb hinzufügen. Ich bekomme diese Fehlermeldung:
new_quiz_experiment_url failed to generate from {:quiz_id=>nil, :action=>"new", :controller=>"experiments"}, expected: {:action=>"new", :controller=>"experiments"}, diff: {:quiz_id=>nil} (ActionController::RoutingError)
Ich bin sicher, dass der Datensatz dort ist, und richtig gespeichert; wenn ich einfüge
puts Quiz.find(1).title
Ich bekomme "Pearl Jam". Sieht aus wie find_by
funktioniert nicht, was da die Gurken-Datei generiert ziemlich seltsam enthält dieses Beispiel:
# when /^(.*)'s profile page$/i
# user_profile_path(User.find_by_login($1))
Ich habe auch versucht, eine einfachere zuerst mit Bedingungen zu finden, es funktioniert auch nicht.
Irgendeine Idee?
Vielen Dank im Voraus,
Davide
Versuchen Sie es mit "find_by_title!" mit dem Ausrufezeichen am Ende. Es könnte eine aussagekräftigere Fehlermeldung geben. – ryanb
Perfekter Tipp. Ich habe "Quiz mit Titel = Pearl Jam" nicht gefunden; Nach dem Hinweis erkannte ich, dass ich den vorherigen Schritt inkonsistent analysiert hatte, den Namen als "Pearl Jam" (mit Anführungszeichen) speichern; das erklärt, warum ich die Platte nicht gefunden habe. Vielen Dank! – nutsmuggler
Auch ich merke gerade, dass du Ryan von Railcasts bist. Diese Testfälle wurden nach Ihrer Gurkeneinführung modelliert, daher war Ihr Trinkgeld recht passend und zeitgerecht! Danke nochmal, auch für den tollen Railcast-Job! – nutsmuggler