向chai请求添加自定义http标头

Tru*_*ran 13 testing request node.js chai

我正在使用node.js构建一个应用程序并使用mocha + chai进行测试.有没有办法可以为我的GET和POST chai请求添加自定义标头?

例如,我想要(半伪代码):

chai.request(server)
  .get('/api/car/' + data.car_id)
  .headers({'some_custom_attribute':'some_value'})
  .end(function(err, res) {
    //do something
  });
Run Code Online (Sandbox Code Playgroud)

同样的帖子:

chai.request(server)
  .post('/api/car/')
  .headers({'some_custom_attribute':'some_value'})
  .send({car_id: 'some_car_id'})
  .end(function(err, res) {
    //do something
  });
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

提前致谢!

ale*_*mac 33

使用set函数设置http标头:

chai.request(server)
  .get('/api/car/' + data.car_id)
  .set('some_custom_attribute', 'some_value')
  .end(function(err, res) {
    //do something
  });
Run Code Online (Sandbox Code Playgroud)

的建立,请求

  • 请注意,必须在 HTTP 方法(get、post 等)之后调用 set('header', value)` (3认同)
  • @NazirAhmed 尝试这样的事情: `let headers = [{ name: 'h1', value: 'v1' }, /* OTHER HEADERS */]; let chain = chai.request.get(/*您的请求*/); headers.forEach(headers, header => chain = chain.set(header.name, header.value)); chain.end(/* 做点什么 */);` (2认同)