2012-12-24 26 views
1

我有一個黃瓜測試,其中測試用戶添加貝寶預批准。在我的控制器中,我重定向到貝寶預批准網址。使用黃瓜和模擬重定向到PayPal和回

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

所以在我的黃瓜測試,我想存根重定向後(使用Webmock),以避免在我的測試PayPal網站的依賴,並有它只是回到我的應用程序,就好像它是成功的。

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

然而,這似乎是給了我一個暫停。我不太確定我接近它的方式是否正確。任何想法我可能做錯了什麼?

回答

2

所以我解決它在我重定向移動到一個單獨的方法:

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

然後在我黃瓜測試,我把:

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

這似乎對重定向自己回到我的應用程序好像批准是成功的

+0

我想知道(或看到)您用來測試的完整代碼。我只是不明白,你是如何解決它的。我試圖做同樣的事情,使用黃瓜和模擬重定向到貝寶和回來。請 –