2012-12-24 1 views
1

J'ai un test de concombre qui teste un utilisateur en ajoutant une pré-approbation paypal. Dans mon contrôleur, je redirige vers l'url de pré-approbation paypal.Utilisation du concombre et simulation d'une redirection vers paypal et retour

if @payment_method.valid? 
    key = @payment_method.preapprove_paypal 
    redirect_to URI.encode("#{Rails.configuration.paypal.preapproval_link}#{key}") 
end 

Donc, dans mon test de concombre Je voulais bouchonner Redirect out (en utilisant Webmock) pour éviter la dépendance sur le site paypal dans mes tests et avoir juste revenir à mon application comme si elle était un succès.

stub_request(:any, /.*paypal.*/).to_return{current_url} 

Cependant, cela semble me donner un délai d'expiration. Je ne suis pas sûr que la façon dont je m'approche soit correcte. Des idées sur ce que je pourrais faire de mal?

Répondre

2

Je résolus en déplaçant mon redirection vers une méthode distincte:

def redirect_to_paypal_preapproval(key) 
redirect_to URI.encode("#{Rails.configuration.paypal.preapproval_link}#{key}") 
end 

Puis dans mon test de concombre je mets:

PaymentMethodsController.stub(:redirect_to_paypal_preapproval) 
    .and_return(visit payment_methods_path) 

qui semblait rediriger sur son propre retour à mon application comme si l'approbation était un succès

+0

Je veux savoir (ou voir) le code complet que vous utilisez pour tester. Je ne comprends pas, comment l'avez-vous réparé. J'essaie de faire la même chose, en utilisant du concombre et en simulant une redirection vers paypal et retour. S'il vous plaît –

Questions connexes