問題タブ [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/supertestを使用してリダイレクトするリクエストをテストする
mocha、supertest、should(および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でアプリをエクスポートする方法に問題があるのではないかと思います。
node.js - 単体テストでサーバーから提供された URL をテストする
NodeJS サーバーで簡単なテストを行うために Mocha と supertest を使用しています。私は今、このシナリオをテストしたいと思います:
- スーパーセットでアプリケーションを使用してリクエストを行います
- 応答には URL が含まれています
- この URL が正しいことを (HTTP 経由で) テストする必要があります
URL は、スーパーセットで実行されているサーバーと同じになります。したがって、最初に呼び出すと.get('/some-data')
、結果の URL は のように完全修飾されますhttp://localhost:3456/a-path
。
これをどのように設定できるか、またはこれらのツールを使用して可能かどうかはわかりません。
node.js - node.js サーバーで supertest/superagent を使用して応答出力バッファー/ストリームを読み取る
API ルートが正しい内容の ZIP ファイルを出力するかどうかを確認するテストを作成しようとしています。
テストに mocha と supertest を使用しています。実際に出力ストリーム/バッファを読み取り、zip ファイルの内容を読み取り、内容が正しいかどうかを確認したいと考えています。
どうすればいいですか?を読み取ろうとするとres.body
、それは単なる空のオブジェクトです。
node.js - 同様のルートのスーパーテストと複数の実行
最新のURLセグメントがハードコードされた値(編集)であり、もう一方がパラメーター(:slug)を持っているため、一方がより具体的であることを除いて、ほとんど同じ2つのルートをテストしようとしています。
私が経験している問題は、リクエストが実行されると、両方のルート(edit、show)が呼び出され、モックのnever()期待値が渡されないことです:(
私は何か間違ったことをしていますか?どちらかがより具体的である場合、なぜ両方のルートが実行されているのかわかりません...
これはテストです:
そして、これが私が上で嘲笑しているusers-controlle.jsです:
node.js - Passportでスーパーテストリクエストを認証する方法は?
私はPassport.jsを認証(ローカル戦略)とMochaとSupertestでのテストに使用しています。
Supertestを使用してセッションを作成し、認証されたリクエストを行うにはどうすればよいですか?
should.js - 統合テストのためにLocomotiveサーバー/アプリを起動する方法は?
ExpressアプリをLocomotiveに変換していますが、テストを移行する方法がわかりません。
Expressでは、/test/test.api.organization.js
ファイルでこれを実行しました。
そして、それはそれでした-単にrequire
アプリファイルを作成するだけで十分でした。app.js
ただし、Locomotiveにはまたはファイルがありません。server.js
サーバーはコマンドラインから。を使用して起動するだけlcm server
です。
サーバー/アプリを起動してテストを再開するにはどうすればよいですか?
node.js - express、node.jsで構築されたRESTful APIのユニットテストロギング(mocha、supertest、chaiを使用)
モカ、チャイ、スーパーテストを使った簡単な単体テストを書きます。
しかし、問題は次のとおりconsole.log('test')
です。が実行されません。ですから、も実行されていないと思いassert.equal( res.body.name, 'tobi');
ます。だから私はユニットテストなしでコードを書きます:
そして、console.log()
すべて実行されます。そのため、最初のコードでログ情報を表示できない理由がわかりません。
node.js - スーパーテストを使用して応答の本文を確認しようとしています - エラーが発生しています
いくつかのテストにスーパーテストを使用しようとしています。テストしようとしているコードスニペットは次のとおりです。
res 本体をテストしようとすると、エラーが発生します。
これはスーパーテストのバグですか、それともテストのフォーマットが間違っていますか? ありがとう
node.js - Express.js アプリの単体テストと統合テスト
Express.js アプリのテストを作成していますが、単体テストと統合テストのどちらを選択すればよいかわかりません。
現在私は実験しました:
単体テスト - スタブ/モック/スパイには Sinon を使用し、モジュールへの依存性注入には Injects を使用します。このアプローチでは、MongoDB とその他の外部メソッドをスタブ化する必要があります。
個々のルートを単体テストしてから、統合テストを使用して正しいルートが実際に呼び出されることを確認することを考えました。
統合テスト - Supertest と Superagent を使用すると、作成するコードが大幅に少なくなります (モック/スタブを作成する必要はありません) が、テスト環境 (データベースなど) が存在する必要があります。
私は Mocha を使用して両方のスタイルのテストを実行しています。
これら2つの異なるアプローチからどのように選択すればよいですか?