1

私は、braintree で支払いを処理しようとするメソッドをテストしているコントローラー テストを行っています。プロジェクトに偽の Braintree を追加しようとしましたが、テストを実行すると、webmock から、この要求をスタブする必要があると言われました。

Real HTTP connections are disabled. Unregistered request: GET http://127.0.0.1:57793/__identify__ with headers {'Accept'=>'*/*', 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'User-Agent'=>'Ruby'} (WebMock::NetConnectNotAllowedError)

You can stub this request with the following snippet:

stub_request(:get, "http://127.0.0.1:57793/__identify__").
  with(:headers => {'Accept'=>'*/*', 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'User-Agent'=>'Ruby'}).
  to_return(:status => 200, :body => "", :headers => {})

ポート番号が異なるため、stub_request の url パラメータに正規表現を使用しています。

  stub_request(:get, /http:\/\/127\.0\.0\.1:\d{5}\/__identify__/)
  .with(headers: { 'Accept'=>'*/*',
                   'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
                   'User-Agent'=>'Ruby'})
  .to_return(status: 200, body: '', :headers => {})

残念ながら、テストを実行すると、まだ webmock からリクエストをスタブする必要があるというメッセージが表示されます。

4

0 に答える 0