問題タブ [nock]

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

javascript - スーパーエージェントとノックはどのように連携できますか?

node.jsで、スーパーエージェントとノックを連携させるのに問題があります。スーパーエージェントの代わりにリクエストを使用すると、完全に機能します。

スーパーエージェントがモックデータの報告に失敗する簡単な例を次に示します。

resオブジェクトには'text'プロパティがありません。何かがうまくいかなかった。

リクエストを使用して同じことを行うと、次のようになります。

モックされたコンテンツは正しく表示されます。

テストではスーパーエージェントを使用したので、それを使い続けたいと思います。誰かがそれを機能させる方法を知っていますか?

どうもありがとう、ザビエル

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

javascript - Node.js - モジュール: nock - コールバックのある .reply が機能しない

nock モジュールを使用して API サービス (ま​​だ未開発) への HTTP 呼び出しをインターセプトし、一時データベースにあるモック データを返します。

http 要求が適切にインターセプトされていることに気付きましたが、問題は、関数が一時 DB から必要なデータを取得する前に、nock が応答することです。

簡単なデモンストレーションについては、以下のコードを見てください。

上記のコードでは、タイムアウトを使用しない場合、期待どおりにデータが正しく返されます。しかし、このタイムアウトにより、nock はコールバックを待たないように見え、代わりに空の 200 応答を返します。

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

node.js - Node.js - Nock と nedb - コールバックが完了する前に返信が実行される

nock を使用して API ホストへの呼び出しをインターセプトし、応答を返す前にローカル データベース ルックアップを実行しています。

以下のコードを参照してください。「entrypoint」への呼び出しをインターセプトし、ローカル データストアから取得したデータで応答したいと考えています。

これは、nock モジュール自体に問題があると思います。ストリームを使用する提案はほとんど聞いていません。この問題を克服するのを手伝ってくれませんか?

0 投票する
4 に答える
16590 参照

node.js - Nockでリクエストのエラーをテストするには?

リクエストリターンでエラーをテストしたい。テストで nock を使用していますが、Nock にエラーを発生させるにはどうすればよいですか? 100% のテスト カバレッジを達成したいので、エラー ブランチをテストする必要があります。

if err ブランチには絶対に入らないでください。hit err が有効な応答であっても、テスト中の私の Nock 行は次のようになります

編集: コメントのおかげで:

  • リクエストのエラーをモックしようとしています。ノードのマニュアルから: https://nodejs.org/api/http.html#http_http_request_options_callback リクエスト中にエラーが発生した場合 (DNS 解決、TCP レベルのエラー、または実際の HTTP 解析エラーなど)、「エラー」イベントが発生します。返されたリクエスト オブジェクトで発行された
  • エラー コード (4xx など) は、err 変数を定義しません。err 変数を定義し、true と評価されるエラーが何であれ、それを正確にモックしようとしています。
0 投票する
4 に答える
2080 参照

javascript - ノック記録された応答をデコードする方法

応答をテキストとして表示できるように、ノックレコーダーによって生成された出力をアドホックにデコード/解凍する方法は? 応答が gzip および/またはエンコードされているかどうかはわかりません。

オブジェクトを nock にロードすると、オブジェクトは find で動作し、テストは期待どおりに動作しています。API が生成したものを確認するには、ロギング ステートメントを実装ファイルに配置する必要があります。

応答の JSON を記録して保存しています。

ファイルは次のようになります。

[ { "scope": "https://some.api.com:443", "method": "POST", "path": "/auth?key=some_key", "body": { "logonId": "user@api.com", "logonPassword": "secret" }, "status": 400, "response": [ "1f8b0800000000000000458cbd6ac34010067b3fc5c735691263bb741344ec42f827420a492916692d1d9cb461f71c218cdf3d97266e6786b92d00c7aaa205290d1c59cd6d71bb3fff8b376939a1cd6abd7ac003cf89b97a5f96757efecc8ef9aede9fb2fc586455f5f55eeedca33db119757f0f5704266334a2ca4d44ec19170941263f76f06657b62dd6cb2af919ec9357cc7255f0cb403e4014df643689b6687d3b3e450c149b1e534f1113a3a71f868cb8f8c04b7ca48b8fa08efcf8ea16f75fa1776d91ee000000" ], "headers": { "cache-control": "no-store, no-cache, must-revalidate", "content-encoding": "gzip", "content-type": "application/json", "transfer-encoding": "chunked", "connection": "Close" } } ]

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

javascript - nock を使用して、特定のリクエスト ヘッダーを使用して mocha でスーパーエージェント リクエストをモックする

次のコードがあります。

を理解していない場合を除き、リクエストヘッダーをの代わりにreqheadersに設定しているため、このテストは失敗すると予想されますが、テストは合格です。application/jsontext/html

の使用を理解していreqheadersませんか? リクエストに特定のヘッダーを持つリクエストをモックするために nock を使用するにはどうすればよいですか?

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

javascript - ノック - バイナリ応答をモックする方法

PayPal クラシック API とやり取りするコードを書いています。このやり取りの最初の部分は、リクエストを PayPal に送信し、PayPal からトークンを取得することです。そのために、単純な https リクエストを使用します。

}

PayPal サンドボックスでは問題なく動作しますが、コードを単体テストしたいのですが、PayPal からの応答を模擬する方法がわかりません。

PayPal からの行応答が次のようになっていることを確認しました。

つまり、バイナリデータのように見えます。応答をモックするためにnockを使用したかったのですが、どうすればこれができるのでしょうか? 私の応答のバイナリバージョンで応答をノックする方法は?

私はこのようなことを試しました:

しかし、私は得ています:

キャッチされないエラー: EOF 後の stream.push()

モックされた応答でデータが送信されていないようです。