1

我有一个黄瓜测试,测试用户添加贝宝预先批准。在我的控制器中,我重定向到贝宝预批准网址。

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

因此,在我的黄瓜测试中,我想将重定向存根(使用 Webmock)以避免在我的测试中依赖于贝宝网站,并让它像成功一样回到我的应用程序。

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

但是,这似乎给了我一个超时。我不太确定我接近它的方式是否正确。有什么想法我可能做错了吗?

4

1 回答 1

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)

这似乎将它自己重定向回我的应用程序,就好像批准成功一样

于 2012-12-25T01:28:31.917 回答