如何记录 Mocha/Chai 的 HTTP 请求

6

你好,我是一名新手学习Mocha/Chai。

我正在尝试测试一些HTTP请求。如果能记录实际的测试请求以进行调试就更好了。

我使用的代码大致如下:

  describe('Get token for super user', () => {
     it('it should get a valid token set', (done) => {
          let req = chai.request(app)
             req
           .get('/oauth/token')
           .set('Content-Type','application/x-www-form-urlencoded')
           .set('Authorization','Basic blah')
           .field('grant_type', 'password')
           .field('username', superUser)
           .field('password', superPass)
           .end((err, res) => {
               console.log('*******' , req)
               res.should.have.status(200)
               done()
           })

   })
  })

我该如何记录请求本身?从API文档中我没有看到明显的方法。

“请求本身”是什么意思? - Capan
2个回答

1
您可以记录res.request
.end((err, res) => {
    console.log('*******' , res.request)
    // ...
  })

或者使用以下函数进行更简单的调试。输出结果如下:curl -X GET -H "Content-Type: application/json" -d '{"username":"647c9cf7af0cb7d7c9aac219", ...}' localhost:3000/oauth/token
function logRequest(request) {
    console.log(`curl -X ${request.method.toUpperCase()} -H "Content-Type: application/json" -d '${JSON.stringify(request._data)}' ${request.url}`);
}

// сall logRequest() like in the previous example 
.end((err, res) => {
    logRequest(res.request)
    // ...
  })


0

获取和记录请求 - 响应对象所有信息的最简单方法:

chai.request('http://...')
    .post('/endpoint')
    .send('{"a":1}')
    .end((err, response) => {
        console.log(response);
        done();
    });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接