Comment utiliser rspec pour tester des routes nommées?
Donné que j'ai une route nommée:
map.some_route '/some_routes/:id', :controller => 'some', :action => 'other'
Comment puis-je utiliser le routage fichier spec 'spec/routage/some_routing_spec.rb' pour tester le nom de la route?
J'ai essayé cette après la "décrire SomeRouteController" bloquer et il ne fonctionne pas, j'obtiens 'undefined method' "aide":
describe SomeRouteHelper, 'some routes named routes' do
it 'should recognize some_route' do
helper.some_route_path(23).should == '/some_routes/23'
end
end
source d'informationauteur btelles
Vous devez vous connecter pour publier un commentaire.
Si c'est dans un contrôleur de spec, vous pouvez appeler la méthode de routage directement, aucune aide nécessaire.
Dans RSpec-Rails de 2,7+, vous pouvez créer un
spec/routing
répertoire et de mettre votre routage spécifications. Voir la rspec-rails docs pour plus d'info.il y a une belle aurais dû matcher pour cela aussi:
plus d'informations sur l'utilisation de shoulda de rapprochement avec rspec:
https://github.com/thoughtbot/shoulda-matchers
Vous pouvez le faire dans votre contrôleur spécifications avec la
assert_routing
méthode, comme suit:Plus de documentation est ici.
C'est la façon dont j'écris les spécifications à l'aide de RSpec2, Shoulda, et le Capybara. Vous enregistrez ce fichier d'exemple dans #{Rails.racine}/spec/routage/thingz_routing_spec.rb ou ma préférence #{Rails.racine}/spec/routage/thingz_controller_spec.rb