9

スーパーテストを使用すると、node.js アプリケーションをテストするためのリクエストを作成できます

var request = require('supertest');
var api = require('../server').app;

  ...

  it('json response', function(done){

    request(api)
      .get('/api')
      .set('Accept', 'application/json')
      .expect('Content-Type', /json/)
      .end(function(err, res){
        done();
      });
  });

テストリクエストを行うために特定のIPを設定するにはどうすればよいですか?

  it('ip access denied', function(done){

    request(api)
      .get('/api')
      .set('Accept', 'application/json')
      .expect('Content-Type', /json/)
      // set specific ip
      .end(function(err, res){
        res.body.message.should.eql('Access denied');
        done();
      });
  });
4

2 に答える 2

9

Express経由でIPアドレスをチェックしていると仮定するとreq.ip(他のフレームワークもおそらく同じように動作しますが)、X-Forwarded-For必要なIPアドレスでテストのヘッダーを設定します。

.set('X-Forwarded-For', '192.168.2.1')

サーバーでトラスト プロキシオプションを有効にする必要がある場合があります。

app.enable('trust proxy')
于 2016-01-04T08:58:46.973 に答える
0

通常は IP アドレスを含むヘッダーを設定できRemote-AddrますX-Http-Forwarded-For。アプリはおそらく、これらのヘッダーの 1 つまたは両方をチェックして、IP アドレスを特定しています。

.set('Accept', 'application/json')
.set('Remote-Addr', '192.168.2.1')
于 2014-12-18T18:42:19.420 に答える