Comment se moquer objet de demande de rspec helper tests?
J'ai une aide de vue de la méthode qui génère une url en regardant demande.domaine et de la demande.port_string.
module ApplicationHelper
def root_with_subdomain(subdomain)
subdomain += "." unless subdomain.empty?
[subdomain, request.domain, request.port_string].join
end
end
Je voudrais tester cette méthode à l'aide de rspec.
describe ApplicationHelper do
it "should prepend subdomain to host" do
root_with_subdomain("test").should = "test.xxxx:xxxx"
end
end
Mais lorsque je l'exécute avec rspec, j'obtiens ceci:
Failure/Error: root_with_subdomain("test").should = "test.xxxx:xxxx" `undefined local variable or method `request' for #<RSpec::Core::ExampleGroup::Nested_3:0x98b668c>`
Quelqu'un peut-il svp m'aider à comprendre ce que je dois faire pour résoudre ce problème?
Comment puis-je me moquer de la "demande", l'objet de cet exemple?
Y a de meilleures façons de générer des urls où les sous-domaines sont utilisés?
Merci d'avance.
Vous devez vous connecter pour publier un commentaire.
Que vous avez à faire précéder de la méthode d'aide à 'aide':
En outre à test de comportement pour les différentes options de demande, vous pouvez accéder à l'objet de la requête via le contrôleur:
Ce n'est pas une réponse complète à votre question, mais pour l'enregistrement, vous pouvez simuler une demande à l'aide
ActionController::TestRequest.new()
. Quelque chose comme:J'ai eu un problème similaire, j'ai trouvé que cette solution fonctionne:
controller.request.host = "http://test_my.com/"
Découvrez railscasts screencast sur les sous-domaines dans rails 3: http://railscasts.com/episodes/221-subdomains-in-rails-3
Il devrait vous aider à avoir une idée de comment ils travaillent et peut-être changer la façon dont vous essayez de faire ces aides vous-même.