1

Paypalサンドボックスを使用して購入を実行する、成功したキュウリとカピバラのテストを作成しました。ただし、paypal サンドボックスの起動にテストが依存しないように、paypal サンドボックス リクエストのスタブが必要です。

私は Webmock に 100% 精通しているわけではなく、そのドキュメントもあまり明確ではありません。Webmock gem を追加したら、必要な webmock.rb を

「webmock/cucumber」が必要 WebMock.disable_net_connect!(:allow_localhost => true)

古いキュウリのテストを実行すると、通常どおり、PayPal サンドボックス ウィンドウを開いてトランザクションを完了します。

これは正常ですか?WebMock は、サードパーティのサイトへの接続の試みをシャットアウトするはずだったのですが。

4

1 に答える 1

0

WebMock は、Ruby コードから行われたすべての http 呼び出しをインターセプトできますが、リダイレクトを行う外部 Web ブラウザー プロセスを制御することはできません。WebMock を使用して、Paypal API (Paypal Pro) への呼び出しをインターセプトできます。Paypal Website Payment Standard を使用している場合、WebMock は役に立ちません。

代わりに、アプリケーションで偽の TestPaypalController を作成し、テスト環境でアプリを構成して、実際のペイパル URL ではなく、ローカルの偽のペイパル URL にリダイレクトすることができます。次に、偽のページのコンテンツと、そのページを要求するために使用されるパラメーターをアサートできます。

最後のステップは、テスト内からのペイパル支払い通知をシミュレートして、アプリケーションへのリクエストを呼び出すことです。

于 2014-02-04T08:35:05.397 に答える