問題タブ [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.
javascript - スーパーエージェントとノックはどのように連携できますか?
node.jsで、スーパーエージェントとノックを連携させるのに問題があります。スーパーエージェントの代わりにリクエストを使用すると、完全に機能します。
スーパーエージェントがモックデータの報告に失敗する簡単な例を次に示します。
resオブジェクトには'text'プロパティがありません。何かがうまくいかなかった。
リクエストを使用して同じことを行うと、次のようになります。
モックされたコンテンツは正しく表示されます。
テストではスーパーエージェントを使用したので、それを使い続けたいと思います。誰かがそれを機能させる方法を知っていますか?
どうもありがとう、ザビエル
javascript - Node.js - モジュール: nock - コールバックのある .reply が機能しない
nock モジュールを使用して API サービス (まだ未開発) への HTTP 呼び出しをインターセプトし、一時データベースにあるモック データを返します。
http 要求が適切にインターセプトされていることに気付きましたが、問題は、関数が一時 DB から必要なデータを取得する前に、nock が応答することです。
簡単なデモンストレーションについては、以下のコードを見てください。
上記のコードでは、タイムアウトを使用しない場合、期待どおりにデータが正しく返されます。しかし、このタイムアウトにより、nock はコールバックを待たないように見え、代わりに空の 200 応答を返します。
node.js - Node.js - Nock と nedb - コールバックが完了する前に返信が実行される
nock を使用して API ホストへの呼び出しをインターセプトし、応答を返す前にローカル データベース ルックアップを実行しています。
以下のコードを参照してください。「entrypoint」への呼び出しをインターセプトし、ローカル データストアから取得したデータで応答したいと考えています。
これは、nock モジュール自体に問題があると思います。ストリームを使用する提案はほとんど聞いていません。この問題を克服するのを手伝ってくれませんか?
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 と評価されるエラーが何であれ、それを正確にモックしようとしています。
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"
}
}
]
javascript - nock を使用して、特定のリクエスト ヘッダーを使用して mocha でスーパーエージェント リクエストをモックする
次のコードがあります。
を理解していない場合を除き、リクエストヘッダーをの代わりにreqheadersに設定しているため、このテストは失敗すると予想されますが、テストは合格です。application/jsontext/html
の使用を理解していreqheadersませんか? リクエストに特定のヘッダーを持つリクエストをモックするために nock を使用するにはどうすればよいですか?
javascript - ノック - バイナリ応答をモックする方法
PayPal クラシック API とやり取りするコードを書いています。このやり取りの最初の部分は、リクエストを PayPal に送信し、PayPal からトークンを取得することです。そのために、単純な https リクエストを使用します。
}
PayPal サンドボックスでは問題なく動作しますが、コードを単体テストしたいのですが、PayPal からの応答を模擬する方法がわかりません。
PayPal からの行応答が次のようになっていることを確認しました。
つまり、バイナリデータのように見えます。応答をモックするためにnockを使用したかったのですが、どうすればこれができるのでしょうか? 私の応答のバイナリバージョンで応答をノックする方法は?
私はこのようなことを試しました:
しかし、私は得ています:
キャッチされないエラー: EOF 後の stream.push()
モックされた応答でデータが送信されていないようです。