問題タブ [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.
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 クライアント。これが私の問題の原因のようです。
宝石を変更することはできません。この問題を解決する方法を知っている人はいますか?
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 のモックを作成していますが、ここで何か助けていただければ幸いです! さらに情報が必要な場合は、お知らせください。
ruby-on-rails - WebMock stub_request が機能しない
私の Rails プロジェクトでは、イニシャライザの 1 つが から特定のデータを要求してフェッチしますS3
。
webmock
これにより、 gemを使用する rspec テスト スイートが壊れます
テストスイートを実行しようとすると、次のエラーが発生します
このスタブを追加してもエラーは修正されません。実際、次のいずれかを追加しても変更はないようです。
ここで私が見逃しているのは何ですか?エラー メッセージの詳細なヘッダーは、すべての種類のリクエストを許可するためにここでは意味がないようですS3
編集:
WebMock.disable!
also に追加してspec_helper
も変化がないことに気付きました。スタブを正しい場所に追加していませんか? にない場合、どこに追加する必要がありspec_helper
ますか?
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 => 1
stub_request からヘッダーを使用および削除すると、アサートから次の出力が得られます。
stub_request コードを webmock 2 で動作させる方法はありますか?
ruby-on-rails - Webmock スタブに対する Octokit リクエストのレスポンスのレスポンス本文を正しく複製する方法
Octokit の応答はSawyer::Response型です
それらは次のようになります。
私は自分のリクエストをそのようにスタブしようとしています
私のコードでは、response.content を呼び出すので、レスポンスからコンテンツを取得できるようにしたいと考えています。
現在、「WebMock::Response::InvalidBody: [Proc, IO, Pathname, String, Array] のいずれかである必要があります」というエラーが表示されます。「与えられたハッシュ」。response_body の適切な形式は何ですか? それをjsonにすると、コード内のオブジェクトでresponse.contentを実行できなくなります。
ruby-on-rails - RSpec と WebMock: リクエストを無視
テストを実行すると、次のエラーが表示されます。
それが私がこの問題を解決するためにしたことです:
spec_helper.rb:
しかし、私はまだこのエラーが発生し続けています。おそらく誰かがそれを修正する方法を知っていますか?
UPD:webmock
gemを使用してAPIリクエストの仕様を書きたいです。しかし、私はからのリクエストを必要とせずtravis-ci
、これらのリクエストを「無視」に追加したいと考えています。
ruby-on-rails - Rails Webmock が localhost API 呼び出しをスタブ化する
post_review
Rest 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 に対して行われるすべてのリクエストをリッスンし、デフォルトで成功を返すか、指定したオプションのブロックを返すことです。これを正しく使用しているかどうかはわかりません。