問題タブ [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.
javascript - Mocha の before 関数内でログインしたエージェントを取得できません
私はmochaでログインプロセスをテストしていました。これが私のテストケースの例です
register
と関数の両方login
が正常に機能し、複数の前も期待どおりに定義の順序で実行され、最初register
にlogin
次にリクエストされました。しかし、3 番目before
の では、/verify
常にagent
ログインしていないと言います。
コードを次のように変更すると:
そして、今回agent
は期待通りに記録されました。それは奇妙だ。誰かが私を助けてくれることを願っています、ありがとう。
javascript - EADDRINUSE を引き起こすモカでスーパーテストを使用する 2 つのファイル
サーバー構成とルートハンドラーの単体テストにスーパーテストを使用しています。サーバー構成のテストは にtest.server.js
あり、ルート処理のテストは にありtest.routes.handlers.js
ます。
を使用してすべてのテスト ファイルを実行するmocha .
と、EADDRINUSE
. 各ファイルを個別に実行すると、すべてが期待どおりに機能します。
request = require('supertest')
どちらのファイルも、スーパーテストと Express サーバー ファイル を定義して必要としますapp = require('../server.js')
。ではserver.js
、サーバーは次のように起動されます。
私の実装に何か問題がありますか?EADDRINUSE
テスト実行時のエラーを回避するにはどうすればよいですか?
node.js - ダイジェスト認証によるルートのテスト
ダイジェスト戦略によって保護されている API に対していくつかのテストを作成しようとしています。
スーパーテストとリクエストを試みましたが、どちらも認証に失敗しました。API は、passport-http ダイジェスト メソッドを使用します。何か案は?
アップデート
最初に curl でいくつかの問題が発生し、パスワードが bcrypt で生成されていることがわかったので、データベース内のパスワードをプレーン テキストのパスワードに変更しました。SHA1 で動作させようとしましたが、すぐにはうまくいきませんでした。リクエストをテストするために、今はそのままにしておきます。
これは curl からの出力です。テストのリクエストはまだ機能しません。
更新 2 リクエストを少し変更した後、最終的に curl とまったく同じヘッダーになりましたが、応答で 401 が返されます。
javascript - Supertest とモック データベースを使用した Express JS 統合テスト
スーパーテストを使用して Express JS REST API をテストすることはできますが、実際のデータベース接続をモック データベース オブジェクトに置き換えることはできますか? データベース モデルとアプリケーションの他の部分をカバーする単体テストと、実際のデータベース接続を行う API エンドポイントの機能テストがありますが、機能テストに似ているがモック データベース接続を使用する統合テストを作成するという奇妙な要件があります。サンプルのエンドポイント コントローラーは次のとおりです。
そしてURIのインデックスは
コントローラーで使用されるリスト モデルは、データベースに接続し、出力されるデータを取得します。課題は、スーパーテストを使用してリクエストを作成し、URI からデータを取得しながら、実際のデータベース呼び出しをモックすることです。
これが悪い、または無意味な考えだと思う場合を含め、どんな情報でも役に立ちます
node.js - Node.js / Express / Mocha / Supertest Rest API - 空のリクエスト本文
これに対する解決策を見つけるために、できる限りあらゆる場所を探しました。私が見つけた唯一のものは、未回答の投稿です。何か見落としがありましたら申し訳ありません。
POST
問題は、API で値を取得しようとすると/createQuestion
、本文が空/未定義になることです。Cannot read proprety 'question' of undefined
API からこのようなエラーが発生します。
エクスプレス API:
テスト:
私は何が欠けていますか?データを別の形式で.send()
送信していますか? リクエストのボディに入れてPOST
いませんか?POST
javascript - Supertest での Mongoose オープン接続の問題
エラーが発生したため、複数の Supertest/Mocha テストを実行できません。ループして接続ステータスを確認することを提案するこの投稿Error: Trying to open unclosed connection.
を見つけました。より良い方法があるかどうか疑問に思っていますか?おそらく、これを処理するために最近 Supertest に追加されたものです。
node.js - Mongoose モデルと Express Route で mocha テストを実行するとタイムアウトする
Mongoose モデルと高速アプリ (ルート) のテストの作成に問題があります
私は非常に単純なapp.js
ファイルを持っています:
model
私のマングースモデルを含むフォルダーがあります。
私はtest
フォルダを持っていますaccountTest.js
- 次のように見えます:
(これは私のアカウントモデルをテストするためのものです)
utils はここから取得されます: http://www.scotchmedia.com/tutorials/express/authentication/1/06
この 1 つのテストだけにとどめておけば、これはうまくいきます。
別のテストを追加して、高速ルートをテストするには、次のようにします。
次に、モデルのテストでタイムアウトエラーが発生します...
それを実行している行はapp = require('../../app')
、それを削除すると、タイムアウトはありません。
私はそれがマングース接続と関係があるかもしれないことを認識していますが、テスト間でそれを「共有」する方法がわかりませんか?