1

ペイパルの事前承認を追加するユーザーをテストするキュウリテストがあります。私のコントローラーでは、ペイパルの事前承認URLにリダイレクトします。

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 に答える