使用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();
});
});发布于 2016-01-04 16:58:47
假设您正在通过express使用req.ip检查ip地址(尽管其他框架可能会有相同的行为),请在测试中使用所需的ip地址设置X-Forwarded-For报头:
.set('X-Forwarded-For', '192.168.2.1')您可能需要在服务器中启用trust proxy选项:
app.enable('trust proxy')发布于 2014-12-19 02:42:19
您可以设置通常包含IP地址、Remote-Addr和X-Http-Forwarded-For的报头。您的应用程序可能正在检查这两个标头中的一个或两个以确定IP地址。
.set('Accept', 'application/json')
.set('Remote-Addr', '192.168.2.1')https://stackoverflow.com/questions/27553441
复制相似问题