0

MOCHA を使用して、いくつかの高速フレームワーク コードをテストしています。

応答ヘッダーで返されるメッセージをテストするための単純な MOCHA コードを作成しました。コードは機能します。また、サーバーに接続していて、データベースからファイルを取得できることも意味します。

ここで、「SuperTest」を使用して同じことを行いたいと思います。しかし、「エラー:ECONMREFUSEDを接続してください」というメッセージが表示されます

これが私のコードです:

var express = require('express');
var request = require('supertest');

var app = express();

describe('GET /core/dbq/534e930204dd311822ec1c9d', function() {
    this.timeout(15000);
    it ('Check header message', function(done) {
      request(app)
        .get('http://localhost:3001/ecrud/v1/core/dbq/534e930204dd311822ec1c9d')
        .expect('warning', '100 Max Record Limit Exceeded')
        .expect('Content-Type', /json/)
        .expect(200, done);
    } )
} )

コンソールに表示されるエラーは次のとおりです。

1) GET /core/dbq/534e930204dd311822ec1c9d Check header message:
   Error: connect ECONNREFUSED
   at errnoException (net.js:901:11)
   at Object.afterConnect [as oncomplete] (net.js:892:19)

「SuperTest」の使い方を学んでいます。助けてください。ありがとうございました。

4

1 に答える 1

0

Supertest はランダムなポートでアプリケーションを起動し、URL のホスト + ポート部分を入力します。コードは、パス (およびクエリ) 部分のみを提供する必要があります。

request(app)
    .get('/ecrud/v1/core/dbq/534e930204dd311822ec1c9d')
    // etc.
    .expect(200, done);

または、テストを実行する前にアプリケーションを自分で起動することもできます。

describe('GET /core/dbq/534e930204dd311822ec1c9d', function() {
  this.timeout(15000);
  before(function(done) {
    app.listen(3001, function() { done(); });
  });

  it ('Check header message', function(done) {
    request(app)
      .get('http://localhost:3001/ecrud/v1/core/dbq/534e930204dd311822ec1c9d')
      // etc.
  });
});

最初のアプローチを使用することを強くお勧めします。そうしないと、ポート 3001 でリッスンしている他のアプリケーションとテストが衝突する可能性があります。

于 2014-04-28T14:51:27.490 に答える