2010-04-13 6 views
1

je reçois l'erreur suivante lors du test d'un itinéraireComment tester les routes nommées?

1) Failure: 
test_settings_route(ProjectsControllerTest) [/test/functional/projects_controller_test.rb:15]: 
The generated path <"/projects/1/edit"> did not match <"/projects/1/settings"> 

Voici le test et ce que je mets dans mes itinéraires fichier

# projects_controller_test.rb 
require 'test_helper' 
class ProjectsControllerTest < ActionController::TestCase 
def test_settings_route 
    assert_routing '/projects/1/settings', :controller => 'projects', :action => 'edit', :id => '1' 
end 

# routes.rb 
map.settings '/projects/:id/settings', :controller => 'projects', :action => 'edit' 

Avec cette entrée dans mes voies fichier mon application nommée se comporte comme prévu - qui est de rendre le modèle d'édition du projet quand/projects/1/settings est demandé - mais je ne comprends tout simplement pas comment faire passer mon test en vert.

J'ai aussi essayé la macro Shoulda avec le même résultat

should_route :get, "/projects/1/settings", :controller => 'projects', :action => 'edit', :id => '1' 
+0

Selon le RailsGuide sur le routage "Le fichier routes.rb est traité de haut en bas lorsqu'une requête arrive. La requête sera envoyée à la première route correspondante." Ainsi, vous voudrez probablement garder vos routes nommées plus spécifiques avant les routes RESTful plus générales. – Corey

Répondre

0

j'avais map.resources :projects dessus de ma route nommée dans routes.rb. Déplacer ma route nommée vers le haut a corrigé mon test.

Questions connexes