問題タブ [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.

0 投票する
2 に答える
3402 参照

javascript - スーパーテストでダウンロードが成功したかどうかをテストする

API エンドポイントをsupertestでテストしていますが、うまく機能しますが、ファイルのダウンロードが成功したかどうかをテストする方法がわかりません。

私のルートファイルでは、エンドポイントを次のように定義しました:

関数は次のgetFile()ようになります。

次に、テスト ファイルで次のことを試します。

ログアウトするので、ファイルが見つかったことは確かですFile found!。手動で試しても問題なく動作しますが、何らかの理由で mocha が返されますError: expected 200 "OK", got 404 "Not Found"

さまざまな MIME タイプと supertest を試しまし.set("Accept-Encoding": "*")たが、何も機能しません。

誰でもこれを行う方法を知っていますか?

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

node.js - スーパーテスト、エクスプレス、モカを使用したうなり声テストAPI

モカとスーパーテストを使用してテストする、エクスプレスで実行されているhttpsサーバーがあります。

私の問題は、テストのみを実行した場合、問題ありません。テストでgruntfileを実行してからexpressを実行しようとすると、テストファイルでafter()をapp.close()で実行しても、多くのEADDRINUSEエラーが表示されます。同じことがテストの監視タスクにも当てはまります。

これが私の例のテストです:

これらのテストは完璧にはほど遠いことを認識しています。適切なソフトウェア テストの冒険を始めたばかりです。

これらの「既に使用されているポート」はすべて明らかであり、どれも...問題を引き起こしません。すべてのテストは正常に動作し、サーバーは正常に動作しますが、stdout はクレイジーです。このような動作は理想とはほど遠いものであり、おそらく潜在的な問題や不安定性の問題に満ちています。

私の質問は - どうすればそれを取り除くことができますか?

私のアイデアは次のとおりです。

  • 異なるポートだけでテスト用の専用サーバーを作成します。残念ながら、これを実装する方法を知る必要があります。

  • スーパーエージェントが実行されていない場合にサーバーを実行するための条件を作成するか、それ以外の場合はスーパーエージェントに渡しますか?

  • スーパーエージェント以外のものを使用します(リクエストなどですが、すべてのCookieとnode_tls_reject_unauthorizedが機能するかどうかはわかりません.

ご覧のとおり、私はそのトピックに苦労しており、答えよりも多くの質問があり、どこを見ればよいかを知るのに十分な経験がありません.

助けていただければ幸いです。

編集:

私ができることがわかりました:

これは別のポートでテストを開始しますが...とにかくserver.js全体がロードされるため、とにかく開始します。次に、実行中のサーバーと一緒に起動すると、明らかな EADDRINUSE があります。

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

express - 統合テストのためにモカとスーパーテストでエクスプレスを設定するにはどうすればよいですか?

Node.js、エクスプレス、スーパーテストは初めてで、基本的なテストの設定方法がわかりません。私はアプリを作成しました:

依存関係に mocha と supertest を追加しました:

次に、この簡単なテストを書きました:

テストは失敗します:

ソフトウェア バージョン:

0 投票する
2 に答える
9938 参照

express - モカ + スーパーテスト + アサート: テスト失敗時に応答本文を出力する

Express アプリをテストするために mocha、supertest、および assert を使用しています。Express アプリは開発モードで実行されるため、リクエストが失敗するたびに有用なデバッグ情報が JSON として返されます。このデータをテスト スイートで印刷したいのですが、テストが失敗した場合に限ります。私のテストの例 (CoffeeScript):

mocha print res.bodyを作成するにはどうすればよいですか?ただし、テストが失敗した場合のみですか? 可能であればconsole.log(res.body) if test.failed、各ブロックに次のようなものを配置する必要はありません。describe

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

node.js - テスト Express API にはローカル サーバーが必要です

スーパーテストを使用してExpressアプリケーション(nodeJS)でモカテストを実行できることを読んだので、別のターミナルセッションでアプリを実行する必要はありません。何を試しても、常に接続エラーで終了します。

継続的インテグレーションを構成するには、ノード サーバーが実行されていなくても、インテグレーションと単体テスト (mocha、supertest、should) を実行できる必要があることは明らかです。

記述されたテストは、アプリの内部 API エンドポイントを検証するためのものです アプリの高速サーバーを実行せずにテストを実行して、たとえばストライダーと統合できるようにする方法を誰が説明できますか