問題タブ [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 - Mocha ルート テストが非同期に実行されない
モカの使用を開始しましたが、特定のテスト ケースに問題があります。コードは次のとおりです。
データベース内にユーザーを挿入した後、一意のインデックス ルールによってエラーが発生するため、結果は false になると予想しています。このテストを実行すると、これが得られます: {success: true, redirect: '/user/registerConfirmation'}
、私はこれを得る必要があります: {success: false}
。各テスト (utils.js 内) の前にデータベースをクリアしないと、期待値が得られることに気付きました。このエラーは非同期エラーが原因で発生しますか? このテストを書き直して、確実に機能するようにするにはどうすればよいですか?
ありがとう
ファイル
util.jsには、テスト シーケンスの構成が含まれています。
user.jsユーザーモデル:
user.js (コントローラー)は、すべてのユーザー ルートのコントローラーです。
編集
end() 関数を試しましたが、まだ機能しません。
node.js - 応答後のスーパーテストの「req」オブジェクトへのアクセス
リクエストがテストされている間/後に、req
オブジェクトに直接アクセスする方法はありますか? 私は自分の戦略supertest
をテストしたいので、 、、そしておそらく他のものをチェックしたいと思います。ページのリダイレクトやフラッシュをテストできることは知っていますが、それらは私の戦略が行っていることですが、オブジェクトにユーザーがいるかどうかを確認することも役立つようです。これを行うと、一度に何人のユーザーがいるかを確認することもできます.passport
req.user
req.session
req
このように定義されている「ローカルサインアップ」戦略でユーザーをサインアップします。
この戦略を使用する1つの方法は次のとおりです。
私の「ローカル」戦略は次のように定義されています。
たとえば、次のように両方の戦略を使用します。
私は試した
ここに表示するには長すぎる関数res
内でログに記録したオブジェクトには、オブジェクトが定義されていますが、リクエストが開かれる前に定義されたオブジェクトと関数しかないようです。つまり、 、 、または必要なその他のオブジェクトがありません。これらのオブジェクトは、要求が完了して新しい要求が開始された後に定義されるためです。リクエストが完了した後にのみ定義されるステータス コードもあることに気付きました。end()
req
req.user
req.session
req
テスト中のリクエストが終了した後にオブジェクトにアクセスする方法はありますか? それとも、私はこれを完全に間違った方法で行っていますか?
javascript - コントローラーでメソッドが呼び出されているかどうかをテストする方法は?
これは、Mocha を使用した Sails JS での非同期テストに関する質問です。
スーパーテスト ライブラリを使用して、Sails JS でコントローラー テストを作成しています。コントローラーへの HTTP POST でメソッドが呼び出されているかどうかを確認したいと思います。end()
そのために、メソッドをスタブ化し、次のように呼び出されることを期待しています。
これを実行すると、アサート時にメソッドが呼び出されないため、期待は失敗します。しかし、次のように期待を入れると、setTimeout
うまくいきます:
なしでテストに合格する方法はありますsetTimeout
か?
ここに私がテストしているコード部分があります: HeartbeatController#create
プルリクエストを送信して問題を解決することもできます: https://github.com/multunus/one-mdm/issues/1
node.js - Express、Sequelize、mocha、および supertests を使用してロールバックを伴う単体テストを作成する方法
データベースにデータを挿入するテストを作成し、スーパーテストでリクエストをテストしてから、偽のデータでロールバックを作成しようとしています。この方法が正しいかどうか誰かが知っていますか?そうでない場合は、どちらが正しい方法か教えてください。前もって感謝します。
node.js - supertest: リダイレクト URL をテストします
スーパーテストを使用すると、リダイレクト コード 302 をテストできます
リダイレクトする目的の URL をテストするにはどうすればよいですか?
node.js - Mocha + Supertest での 404 テストの「Body Parse」エラー
Express API がさまざまなシナリオで適切な HTTP ステータス コードを正しく返すことを確認するためのテストを作成しようとしています。テストで API へのリクエストにMocha とSupertestを使用しています。現在、非常に予想外の結果が得られています。詳細については、以下で説明します。
使用: Express、body-parser、Sequelize、Mocha、Supertest
/users/:id を取得
このメソッドのテスト
404 テストで{ [Error: Parse Error] bytesParsed: 12, code: 'HPE_INVALID_STATUS' }
は、コールバックで次のエラーが発生します。res
ですundefined
。_
expect
この呼び出しに対していくつかの異なる構文形式を試し.expect(404, function(err, res) {
ましたが、どれもうまくいきませんでした。これについても、さまざまな構文形式をすべて試しました。
ここで何が起こっているのかについて、誰かが洞察を提供できますか?
node.js - スーパーテスト リクエストで IP を設定する
スーパーテストを使用すると、node.js アプリケーションをテストするためのリクエストを作成できます
テストリクエストを行うために特定のIPを設定するにはどうすればよいですか?
node.js - スーパーテストは、API がコールバック/jsonp 関数を返すことを確認するのに役立ちますか?
テスト駆動型開発の精神に則り、要求されたときに API がコールバック関数にラップされた結果を返すことができることを確認する方法を見つけようとしています。このような:
モカとスーパーテストを使用しています。応答変数を文字列に変換してそれを参照文字列と比較する以外に、テスト スイートが JSON を含む関数呼び出しを受け取っていることを確認する他の賢い方法はありますか?