問題タブ [webmock]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
617 参照

ruby-on-rails - 永続的な HTTPClient を使用した Rails gem でのスタブ リクエスト

Boxr gem ( https://github.com/cburnette/boxr ) を使用して api.box.com へのリクエストをスタブ化する RSpec テストを作成しようとしています。#to_rack メソッドを使用して、偽の Box クラスに移動するスタブを作成しました

そして私のFakeBoxクラス:

この偽物は、私が呼び出すたびにトリガーされるか、コントローラーNet::HTTP.get('https://api.box.com/oauth2/token')またはHTTPClient.new.post(...)テストメソッドで直接トリガーされます。

ただし、Boxr::get_tokens(params[:code]) Boxr gem 自体にデバッガーを配置して呼び出すとトリガーされません。

BOX_CLIENT は次のように定義されています。

デバッガーがトリガーBOX_CLIENT.post(uri, body: body)されると、サイトにアクセスしたことを示す応答が返され、モックをトリガーすると予想していたときにエラーが返されました。そのブレークポイントでデバッグ コンソールに入るHTTPClient.new.post(uri, body: body)と、予期していたスタブ化された応答が返されました。

デバッガー コンソールに入るHTTPClient.new.classと、WebMockHTTPClient. BOX_CLIENT.class-> HTTP クライアント。これが私の問題の原因のようです。

宝石を変更することはできません。この問題を解決する方法を知っている人はいますか?

0 投票する
1 に答える
4522 参照

ruby-on-rails - WebMock.disable_net_connect! rspec で動作しない (VCR なし)

多くの場所に配置しようとしWebMock.disable_net_connect!ましたが、前回のテストで推奨されたように、次のspec_helper.rbように配置しました。

私のスペックは次のとおりです。

うーん、もちろん、私のクライアントが電話をかけます:

次のメッセージで失敗します。

Rails 4.1.8、rspec 3.1.7、rspec-rails 3.1.0、webmock 1.8.11 を使用しています。現在、動作させるために http_client のモックを作成していますが、ここで何か助けていただければ幸いです! さらに情報が必要な場合は、お知らせください。

0 投票する
1 に答える
4614 参照

ruby-on-rails - WebMock stub_request が機能しない

私の Rails プロジェクトでは、イニシャライザの 1 つが から特定のデータを要求してフェッチしますS3

webmockこれにより、 gemを使用する rspec テスト スイートが壊れます



テストスイートを実行しようとすると、次のエラーが発生します

このスタブを追加してもエラーは修正されません。実際、次のいずれかを追加しても変更はないようです。


ここで私が見逃しているのは何ですか?エラー メッセージの詳細なヘッダーは、すべての種類のリクエストを許可するためにここでは意味がないようですS3

編集:

WebMock.disable!also に追加してspec_helperも変化がないことに気付きました。スタブを正しい場所に追加していませんか? にない場合、どこに追加する必要がありspec_helperますか?

0 投票する
1 に答える
1106 参照

ruby - Bearer Authorization ヘッダーを含む stub_request が webmock 2 で機能しない

次のコードは webmock 1.20.4 では機能しますが、2.0.1 では機能しません

これは私がスタブしているコードです。

assert_requested :get, "http://www.myapi.com/my-endpoint", :headers => {'Authorization' => "Bearer fake_oauth_token"}, :times => 1stub_request からヘッダーを使用および削除すると、アサートから次の出力が得られます。

stub_request コードを webmock 2 で動作させる方法はありますか?

0 投票する
3 に答える
1805 参照

ruby-on-rails - Webmock スタブに対する Octokit リクエストのレスポンスのレスポンス本文を正しく複製する方法

Octokit の応答はSawyer::Response型です

それらは次のようになります。

私は自分のリクエストをそのようにスタブしようとしています

私のコードでは、response.content を呼び出すので、レスポンスからコンテンツを取得できるようにしたいと考えています。

現在、「WebMock::Response::InvalidBody: [Proc, IO, Pathname, String, Array] のいずれかである必要があります」というエラーが表示されます。「与えられたハッシュ」。response_body の適切な形式は何ですか? それをjsonにすると、コード内のオブジェクトでresponse.contentを実行できなくなります。

0 投票する
1 に答える
1814 参照

ruby-on-rails - RSpec と WebMock: リクエストを無視

テストを実行すると、次のエラーが表示されます。

それが私がこの問題を解決するためにしたことです:

spec_helper.rb:

しかし、私はまだこのエラーが発生し続けています。おそらく誰かがそれを修正する方法を知っていますか?

UPD:webmock gemを使用してAPIリクエストの仕様を書きたいです。しかし、私はからのリクエストを必要とせずtravis-ci、これらのリクエストを「無視」に追加したいと考えています。

0 投票する
1 に答える
1646 参照

ruby-on-rails - Rails Webmock が localhost API 呼び出しをスタブ化する

post_reviewRest Client API 呼び出しを呼び出すアクションを持つコントローラーがあります。

document_manual_resultロギング メソッドでありdelete_relavent_review_queue、アイテムを削除するコールバック タイプのメソッドです。

post_review アクションの副作用をテストするいくつかのテストを作成しました。つまり、結果 (aka: response_body) を送信したことと、別のオブジェクトを削除したことを文書化します。

テストを有効にする前は機能しRestClientていましたが、現在は残りのクライアントが実行されており、仕様に違反しています。メソッドの他の副作用をテストできるように、コントローラー アクションの一部だけをスタブしたいと思います。rest_client.execute私が指しているURLは次のlocalhost:3001とおりです。

私は何もしなかった私の before ブロック内でそれを使用し、実際のテストのブロック内でそれを試してみましたが Webmockpost :post_review, @paramsは何もしていないようです。Webmock が行うと思ったことは、特定の URL に対して行われるすべてのリクエストをリッスンし、デフォルトで成功を返すか、指定したオプションのブロックを返すことです。これを正しく使用しているかどうかはわかりません。