Rspec: comment spec demande.env dans un helper spec?
Dans mon module d'aide, j'ai:
def abc(url)
...
if request.env['HTTP_USER_AGENT']
do something
end
end
Dans mon fichier spec, j'ai:
describe "#abc" do
before(:each) do
@meth = :abc
helper.request.env['HTTP_USER_AGENT'] = "..."
end
it "should return the webstart jnlp file" do
@obj.send(@meth, "some_url").should ....
end
end
Quand je lance le spec, j'ai cette erreur:
undefined local variable or method `request' for <ObjectWithDocHelperMixedIn:0x00000103b5a7d0>
Comment puis-je stub pour demande.env['...'] dans mes specs?
Grâce.
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez rspec-rails, vous pourriez être en mesure d'utiliser
controller.request
dans votre helper tests.Eh bien, vous avez presque rien à faire:
J'ai donné tout cela, essayez un autre et cela passe:
Vous pouvez remplacer l'agent utilisateur défini dans la demande d'env en procédant comme suit.
Puis, dans votre spec:
Essayez ceci:
stub(request).env { {"HTTP_USER_AGENT" => "Some String"} }
pour ceux qui utilisent des specs de requête à la place de contrôleur spécifications et que vous voulez définir
request.env
pouvez le faire comme ceci:cela fera
request.env["whatever"]
disponible dans vos contrôleurs avec la valeur que vous avez donné à vos spécifications.