問題タブ [supertest]
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.
node.js - スーパーテスト エージェントは、node.js express.js アプリでセッションを保持していないようです
私が読んだすべてのドキュメントと例から、エージェントを使用してスーパーテストでセッションを永続化できるはずです。
上記の各リクエストは同じエージェントを使用しているため、セッションは持続するはずです。ただし、そうではないようです。set-cookie ログからの出力は次のとおりです。
認証とセッションには、passport.js が使用されています。上記の connect.sid は両方のリクエストで一定であると予想されますが、各呼び出しで新しいセッションが作成されているように見えるため、エージェントは 2 回目の呼び出しでログインせず、ユーザー オブジェクトは返されません。
ブラウザでアプリを手動でテストすると、ログイン後も connect.sid が一定のままで、テストしている機能が機能します。
私はエージェントに何か悪いことをしているに違いありません。誰かがそれを見つけてくれることを願っています。それ以外の場合は、問題をデバッグする方法についての提案をいただければ幸いです。
node.js - スーパーテストを使用してExpressアプリのPOSTリクエストパラメータをテストする方法は?
Express 4.0.0 を使用して API を作成していますが、ルートの 1 つで POST が実行されます。現在、リクエストパラメーターで送信された名前をエコーするようにしています。応答は JSON オブジェクトですが、要求にはフォーム フィールドが必要です。
私のテストでは、ハッシュを POST パラメーター/フィールドとして渡すことができるように設定type()
されています。form
send()
いずれにせよ、私のテストは失敗し、Express では、myreq.params
は空で、req.param('name')
起動しundefined
、空req.body
でもあります。
私が認識していない属性がありますかreq.fields
、それとも私のテストに何らかの欠陥がありますか?
javascript - CSRFでエクスプレスフォームの投稿をテストするには?
サーバー側のフォーム検証用のテストを作成しようとしていますが、Forbidden エラーが発生し続けます。これは2段階のプロセスである必要があるようです。ステップ 1、フォームから CSRF 値を取得します。ステップ 2、CSRF 値を使用してフォーム ハンドラーに投稿します。ただし、どのように投稿しようとしても、禁止されたエラーが発生します。
-- 完全なテスト: https://github.com/socketwiz/swblog/blob/master/test/contact.js#L57-L100
したがって、次の行を変更してみました: https://github.com/socketwiz/swblog/blob/master/test/contact.js#L85
しかし、私が試みたものはどれも CSRF 要件を満たすようには見えません。単純なことのように見えても、試行錯誤すればするほど複雑になります。たぶん、私はこれについてすべて間違っています。何か案は?
javascript - supertest EventEmitter メモリ リークが検出されました
これは SO でよくある質問のようですが、すべての提案を試してみましたが、うまくいかないようです。一般的な解決策は、戦略的に配置されているようです。
しかし、どこに置くべきか分からないようです。私のテストケースで起こっている:https://github.com/socketwiz/swblog/blob/master/test/contact.js
最初は問題ありませんでしたが、テスト ケースを追加し始めると、次のエラーが発生し始めました。
失敗しているテストにコメントすると、別のテストに移動するだけなので、特定のテストではないようです。
それを修正しようとして、私は設定を試みました:
ここ: https://github.com/socketwiz/swblog/blob/master/test/contact.js#L21
設定もしてみた
ここ: https://github.com/socketwiz/swblog/blob/master/index.js#L15
しかし、私は運が悪いようです。どこに置くべきか、またはより良い解決策はありますか? ノード v0.10.26 を使用しています。私のプロジェクト全体は、参照用にここにあります: https://github.com/socketwiz/swblog
私が言える限り、すべてが機能しており、これは単なる警告ですが、ちょっと面倒です:(
node.js - MOCHA を使用して Express アプリを SUPERTEST する場合は、ECONMREFUSED を接続します。
MOCHA を使用して、いくつかの高速フレームワーク コードをテストしています。
応答ヘッダーで返されるメッセージをテストするための単純な MOCHA コードを作成しました。コードは機能します。また、サーバーに接続していて、データベースからファイルを取得できることも意味します。
ここで、「SuperTest」を使用して同じことを行いたいと思います。しかし、「エラー:ECONMREFUSEDを接続してください」というメッセージが表示されます
これが私のコードです:
コンソールに表示されるエラーは次のとおりです。
「SuperTest」の使い方を学んでいます。助けてください。ありがとうございました。
node.js - supertest .expect(function(res) {}) テストがOKの場合に何を返すか
mocha と supertest で作成されたテストがある場合:
結果のボディをテストしたいのですが、常にタイムアウトで実行されます。エラーが発生した場合は、エラーをスローできます。それで問題ありません。しかし、エラーが発生しない場合は、ドキュメントに記載されているような何も返さないとタイムアウトになります。
カスタム アサーション関数を渡します。チェックする応答オブジェクトが与えられます。応答が OK の場合、最も一般的には何も返さないことで、false を返す必要があります。チェックが失敗した場合は、エラーをスローするか、エラーになる文字列などの真の値を返します
例 im docu:
バージョン0.12.1を使用しています
node.js - mocha/supertest でランダム値をテストする
API を提供しているこの KoaJS アプリケーションがあり、mocha/supertest を使用して API をテストしています。テストの 1 つは、API を介して oauth トークンを作成できることを確認することです。テストは次のようになります。
ここでの問題は、token と createdTimestamp が、テストを実行する前に判断できない値であることです。
応答をモックせずにこの状況をテストする最良の方法は何ですか (このテストで実際にデータベースにアクセスし、実行する必要があるため)?