問題タブ [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 - 応答本文が空であることをアサートする
応答本文が空であるかどうかをアサートしようとしていますが、エラーが発生しました:
どうしたの?この問題を解決するにはどうすればよいですか?
node.js - Passportjs、mocha、supertest ECONNREFUSED
mocha、supertest、および Passport で認証をテストしようとしていますが、接続拒否エラーが発生します。アプリの起動方法に関係していると思います...
このユーザーは私のmongoデータベースに存在します。2 レベル高いサーバー ファイル内:
node.js - 説明ブロック内の各テストの前のagent.auth
以下の作品:
.auth('testusername', 'validuserpass')
ここで、「ログイン時」ブロックにさらに多くのテストを追加したい場合、毎回この行を繰り返したくありません。認証コードを beforeEach に入れる必要があります。それが beforeEach の目的だからです。
だから私はこれを試しました:
何が起こるかはagent.auth
定義されていません。auth
の結果でメソッドが定義されていると思いますauth.post
。
これを行う方法はありますか?
node.js - Express Response オブジェクトで Cookie データを取得していますか?
私はちょうどいくつかの API テストを行っており、送信された Cookie データが正しいことを確認しようとしていますが、応答オブジェクトからの Cookie の取得に関するドキュメントは見つかりません。要求からのみです。
リクエストで行うように、これを行う簡単な方法はありますか?req.cookies["myCookie"]
ヘッダーを取得してそこからset-cookieを取得できることは知っていますが、そこから手動でCookieデータを解析しようとすると少し混乱します.
node.js - 単一の grunt コマンドからアプリとモック テストを実行するための Gruntfile
動作する Node.js Express REST API アプリがあります。良い。
上記の API アプリをテストする Mocha/Chai/Supertest モックがあります。良い。
ただし、アプリを起動してから、個別に模擬テストを実行する必要があります。
API アプリを起動する単一の grunt コマンドを実行するにはどうすればよいですか?
それとも、何らかのテスト モードで (env var を介して) API アプリを実行し、テストのみのロジックで何らかの方法でモック テストを呼び出す必要がありますか?
いくつかのことを試して何かを動作させることはできますが、良い方法は何ですか? (「ベスト プラクティス」という言い回しを使いすぎないようにします。)
unit-testing - モカ/スーパーテストを使用したセイルズ/ウォーターライン モデルの単体テスト: toJSON() の問題
Sails アプリケーションのモデル、コントローラー、およびサービスで単体テストをセットアップしています。User モデルをテストしているときに、紛らわしい問題に遭遇しました。の抜粋User.js
:
以下は私test.js
のもので、モカで実行することを意図しています。pluralize
blueprints config でフラグをオンにしたことに注意してください。また、Ember Data に準拠したブループリントを作成するために、Sails-ember-blueprintsを使用します。したがって、私のリクエストは次のようになります{user: {...}}
。
User.isAdmin への書き込みアクセスを禁止するポリシーを設定する前に、user.isAdmin 属性がこのリクエストによって更新されることを期待しています。テストを実行する前に、ユーザーの isAdmin フラグが true に設定されています。テストを実行すると、フラグが更新されていないことが示されます。
クライアント側で実行される次の QUnit テストは isAdmin 属性を更新するため、これはさらに不可解です。ただし、更新されたかどうかはわかりません。
mongoDB コンソールで:
さらに不可解なのは、コメントアウトするdelete obj.isAdmin
とUser.toJSON()
mocha テストに合格することです!
だから、私は疑問に思います:
- Waterline モデルの toJSON() メソッドは、出力フィルタリングにのみ使用されますか? または、update() などの書き込み操作に影響がありますか。
- この問題はスーパーテストに関連している可能性がありますか? 私の QUnit テストの jQuery.ajax() は isAdmin フラグを変更するため、スーパーテスト リクエストが変更しないのは非常に奇妙です。
どんな提案でも本当に感謝しています。
node.js - supertest と Node.js を使用するこのテストでは、res.body は空です
node.js API をsupertestres.body
でテストしていますが、返されるオブジェクト スーパーセットが空である理由を説明できません。データはres.text
オブジェクトに表示されますが、表示されませんres.body
。これを修正する方法はありますか?
私はExpressを使用していbody-parser
ます:
私がテストしているAPIメソッドは次のとおりです。
この API メソッドに対して実行しているテストは次のとおりです。
私が受け取る失敗:
最後に、 の結果の抜粋を次に示しconsole.log(res)
ます。
node.js - スーパーテスト、安全な REST API のテスト
によって保護された REST API の統合テストを作成していjwt
ます。1 つの API 操作 POSTは、指定された aおよび aを/user/token
返し、このトークンは次のような操作のリストに使用されます。jwt
username
password
ルートが使用されている場所ではjwt({secret: secret.secretToken})
、トークンが HTTP ヘッダーに含まれていますAuthorization
。
スーパーテストでテストする場合、テストをネストできますが、最初にトークンを取得してから、このトークンを使用して他の操作をテストしたいと考えています。
操作テストごとに新しいトークンを生成することを回避する方法 (以下を参照) が、POST /user/token によって生成されるトークンを 1 つだけ使用する方法。