Rspec-rails: Les en-têtes HTTP ne semblent pas être transmis correctement à la requête

Créé le 2 juin 2010  ·  5Commentaires  ·  Source: rspec/rspec-rails

Faire une demande comme ceci :

post :create, {}, { "X-BLAH" => "blah" }

se termine par un objet de requête avec les en-têtes spécifiés imbriqués dans "rack.session":

#<ActionController::TestRequest:0x105e02698 ... "rack.session"=>{"X-BLAH"=>"blah"} ... >

ainsi, par exemple, l'envoi d'un en-tête HTTP_AUTHORIZATION n'est pas récupéré par authenticate_or_request_with_http_basic .

J'utilise les gemmes :

gem "rails", "3.0.0.beta3"
gem "rspec", "2.0.0.beta.9"
gem "rspec-rails", "2.0.0.beta.9.1"

Ben

ps. Cela ne s'est pas produit avec rspec 2 beta4

Commentaire le plus utile

Qu'en est-il des spécifications de la demande ?

request arrive à zéro ?

Merci,
Dan

Tous les 5 commentaires

Depuis la version bêta.8, les spécifications du contrôleur sont déléguées à ActionController::TestCase::Behavior (http://github.com/rails/rails/blob/master/actionpack/lib/action_controller/test_case.rb).

Pour définir des en-têtes, vous les définissez directement sur l'objet de requête :

 request.env["X-BLAH"] = "blabla"
 poste :créer, ....

Super, merci pour la réponse rapide. Où puis-je trouver de la documentation ?

Qu'en est-il des spécifications de la demande ?

request arrive à zéro ?

Merci,
Dan

Woops on dirait que #request_via_redirect fait l'affaire

http://guides.rubyonrails.org/testing.html#helpers -available-for-integration-tests

Dan

Cette page vous a été utile?
0 / 5 - 0 notes