A Rails 3 Anwendung enthält einige Logik entspricht, auf den folgenden Code aufruft (was ich nicht ändern kann):Aufruf Rails.application.routes.recognize_path innerhalb eines rspec Test in Rails keine Route 3
Rails.application.routes.recognize_path("/customers", :method => :get)
Das "/ Kunden" ist natürlich variabel.
Ich schreibe einen zugeordneten Rspec-Test, der den Code aufruft, der diese Logik enthält, und der Test hat eine komplette Rails-Umgebung. Wenn ich hebe folgendes:
Rails.application.routes.routes.inspect
es die richtigen Routen enthält (zum Beispiel eine der Routen hat sie ist „GET/Kunden“).
Wenn ich den Test dann laufen, die Logik ergibt ein:
No route matches "/customers"
wie folgt vorgehen:
@routes = Rails.application.routes
assert_recognizes({:controller => "customers", :action => "index"}, "/customers")
Ergebnisse in den gleichen Fehler.
Innerhalb eines Helfer-Test, die folgenden:
# this succeeds and returns "/customers"
x = helper.customers_path
Rails.application.routes.recognize_path(x, :method => :get)
ergibt, wieder einmal, den gleichen Fehler (keine Route matches "/ Kunden")
Ich bin 100% positiv sicher, dass Rails .application.routes enthalten die richtigen Routen.
Hat jemand eine Idee, was die Ursache dafür ist?
Danke!