在SuperTest请求中设置IP [英] set ip in supertest request

查看:21
本文介绍了在SuperTest请求中设置IP的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用SuperTest,我可以请求测试我的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();
      });
  });

推荐答案

假设您正在使用req.ipVia Express检查IP地址(尽管其他框架可能会有相同的行为), 使用所需的IP地址设置测试中的X-Forwarded-For头:

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

您可能需要在服务器中启用trust proxy选项:

app.enable('trust proxy')

这篇关于在SuperTest请求中设置IP的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆