問題タブ [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 投票する
4 に答える
29202 参照

node.js - ノードでmocha/supertestを使用してリダイレクトするリクエストをテストする

mochasupertestshould(およびcoffeescript)を使用したエクスプレスプロジェクトで、次の統合テストに合格することができないようです。


テスト


関連するアプリケーションコード


失敗


明らかに、アプリケーションコードは何の役にも立ちません。テストに合格しようとしています。

期待値(res.text.should.include('logged in'))をend関数の外側と関数の内側に置くexpectと、同じ結果が得られます。また、関数呼び出しのバリエーションを試しました。たとえば、呼び出しを削除し、2つの呼び出しの代わりに.type('form')使用します。.send(user: 'username', password: 'password').field()

それが何かを意味する場合、ローカルで実行されているときにアプリにcurl POSTリクエストを送信すると、同じ出力が生成されます(Moved Temporarily. Redirecting to //127.0.0.1:3456/login

これは些細な間違いだと思います。アプリケーションコードやテストコードで忘れているかもしれません。

助言がありますか?

編集1:ブラウザの送信ボタンをクリックすると、期待どおりの結果(フラッシュメッセージ)が得られることにも注意してください。

編集2:さらに調査すると、リダイレクト結果の出力が応答本文に表示Moved Temporarily. Redirecting to ...ます。これにより、app.jsでアプリをエクスポートする方法に問題があるのではないかと思います。

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

node.js - 単体テストでサーバーから提供された URL をテストする

NodeJS サーバーで簡単なテストを行うために Mocha と supertest を使用しています。私は今、このシナリオをテストしたいと思います:

  1. スーパーセットでアプリケーションを使用してリクエストを行います
  2. 応答には URL が含まれています
  3. この URL が正しいことを (HTTP 経由で) テストする必要があります

URL は、スーパーセットで実行されているサーバーと同じになります。したがって、最初に呼び出すと.get('/some-data')、結果の URL は のように完全修飾されますhttp://localhost:3456/a-path

これをどのように設定できるか、またはこれらのツールを使用して可能かどうかはわかりません。

0 投票する
5 に答える
16047 参照

node.js - node.js サーバーで supertest/superagent を使用して応答出力バッファー/ストリームを読み取る

API ルートが正しい内容の ZIP ファイルを出力するかどうかを確認するテストを作成しようとしています。

テストに mocha と supertest を使用しています。実際に出力ストリーム/バッファを読み取り、zip ファイルの内容を読み取り、内容が正しいかどうかを確認したいと考えています。

どうすればいいですか?を読み取ろうとするとres.body、それは単なる空のオブジェクトです。

0 投票する
3 に答える
10714 参照

node.js - リモート URL で Supertest テストを再利用する

私はMochaJSSuperTestを使用して開発中に API をテストしており、非常に気に入っています。

ただし、コードを本番環境にプッシュする前に、これらの同じテストをステージング サーバーのリモート テストにも使用したいと考えています。

リモート URL またはリモート URL へのプロキシを使用してリクエストを提供する方法はありますか?

ここに私が使用するテストのサンプルがあります

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

node.js - 同様のルートのスーパーテストと複数の実行

最新のURLセグメントがハードコードされた値(編集)であり、もう一方がパラメーター(:slug)を持っているため、一方がより具体的であることを除いて、ほとんど同じ2つのルートをテストしようとしています。

私が経験している問題は、リクエストが実行されると、両方のルート(edit、show)が呼び出され、モックのnever()期待値が渡されないことです:(

私は何か間違ったことをしていますか?どちらかがより具体的である場合、なぜ両方のルートが実行されているのかわかりません...

これはテストです:

そして、これが私が上で嘲笑しているusers-controlle.jsです:

0 投票する
8 に答える
38253 参照

node.js - Passportでスーパーテストリクエストを認証する方法は?

私はPassport.jsを認証(ローカル戦略)とMochaとSupertestでのテストに使用しています。

Supertestを使用してセッションを作成し、認証されたリクエストを行うにはどうすればよいですか?

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

should.js - 統合テストのためにLocomotiveサーバー/アプリを起動する方法は?

ExpressアプリをLocomotiveに変換していますが、テストを移行する方法がわかりません。

Expressでは、/test/test.api.organization.jsファイルでこれを実行しました。

そして、それはそれでした-単にrequireアプリファイルを作成するだけで十分でした。app.jsただし、Locomotiveにはまたはファイルがありません。server.jsサーバーはコマンドラインから。を使用して起動するだけlcm serverです。

サーバー/アプリを起動してテストを再開するにはどうすればよいですか?

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

node.js - express、node.jsで構築されたRESTful APIのユニットテストロギング(mocha、supertest、chaiを使用)

モカ、チャイ、スーパーテストを使った簡単な単体テストを書きます。

しかし、問題は次のとおりconsole.log('test')です。が実行されません。ですから、も実行されていないと思いassert.equal( res.body.name, 'tobi');ます。だから私はユニットテストなしでコードを書きます:

そして、console.log() すべて実行されます。そのため、最初のコードでログ情報を表示できない理由がわかりません。

0 投票する
5 に答える
41891 参照

node.js - スーパーテストを使用して応答の本文を確認しようとしています - エラーが発生しています

いくつかのテストにスーパーテストを使用しようとしています。テストしようとしているコードスニペットは次のとおりです。

res 本体をテストしようとすると、エラーが発生します。

これはスーパーテストのバグですか、それともテストのフォーマットが間違っていますか? ありがとう

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

node.js - Express.js アプリの単体テストと統合テスト

Express.js アプリのテストを作成していますが、単体テストと統合テストのどちらを選択すればよいかわかりません。

現在私は実験しました:

単体テスト - スタブ/モック/スパイには Sinon を使用し、モジュールへの依存性注入には Injects を使用します。このアプローチでは、MongoDB とその他の外部メソッドをスタブ化する必要があります。

個々のルートを単体テストしてから、統合テストを使用して正しいルートが実際に呼び出されることを確認することを考えました。

統合テスト - Supertest と Superagent を使用すると、作成するコードが大幅に少なくなります (モック/スタブを作成する必要はありません) が、テスト環境 (データベースなど) が存在する必要があります。

私は Mocha を使用して両方のスタイルのテストを実行しています。

これら2つの異なるアプローチからどのように選択すればよいですか?