Comment requête (GET/POST) itinéraires en RSpec qui ont un caractère générique
J'ai cette (certes hideux) route dans les Rails:
champ d'application "/software " ne post '/:software_id/:attachment_id/event/*event' => 'logiciel#post_event', comme suit: "post_event' fin
(Je voudrais le changer mais pour un héritage de l'API)
Et je suis en train d'écrire un RSpec test pour elle.
rake routes
me donne:
post_event POST /logiciel/:software_id/:attachment_id/event/*(.:format) api/version1301/logiciel#post_event
Mon test ressemble à ceci:
décrire "post_event" ne il "doit répondre avec 204" ne params = { attachment_id: @attachement.uid, software_id: @licence.id } post :post_event, params réponse.code.devrait eq "204" fin fin
Mais j'obtient l'erreur de routage:
Panne/Erreur: par la poste :post_event, params ActionController::RoutingError: Aucun itinéraire correspond à {:format=>"json", :name_path=>:api :attachment=>"7b40ab6a-d522-4a86-b0de-dfb8081e4465", :software_id=>"0000001", :attachment_id=>"7b40ab6a-d522-4a86-b0de-dfb8081e4465", :controller=>"api/version1301/logiciel", :action=>"post_event"} # ./spec/controllers/api/version1301/software_controller_spec.rb:62:dans " le bloc (4 niveaux)'
Comment gérez-vous la route avec le caractère générique (événement)?
OriginalL'auteur campeterson | 2013-04-17
Vous devez vous connecter pour publier un commentaire.
(Pour répondre à ma propre question)
Ce qui s'est avéré être un peu "débutant" erreur.
Le caractère générique (événement) la partie de la route requiert tout de même un paramètre. Je n'ai pas de passage de l '"événement" de paramètre, par conséquent, la route était incomplète.
Le code suivant fonctionne:
/*event(.:format)
signifie qu'il s'attend à un paramètre.Spécial note à soi et aux autres:
Si jamais vous avez des erreurs de routage dans les Rails, vérifiez que vous êtes de passage de tous les paramètres.
get
dans le test pour le faire fonctionner.... il m'a fallu 2 jours pour trouver.....Dernièrement, j'ai écrit routage specs pour tous les non-Sommeil routes que je rencontre. A enregistré des maux de tête.
OriginalL'auteur campeterson