4

我一辈子都无法使用简单的超级代理发布请求。这是我的 superagent 和 nock 配置。

超级代理:

request
  .post('https://test.com/api/login')
  .send({
    email: 'test@test.com',
    password: 'testpassword'
  })
  .end((err, res) => {
    if (err) {
      console.log(err);
    }
  });

诺克:

nock('https://test.com')
  .post('/api/login')
  .send({
    email: 'test@test.com',
    password: 'testpassword'
  })
  .reply(200, {
    id: 1,
    token: 'abc'
  });

我从 nock 收到以下错误:

{ [Error: Nock: No match for request POST https://test.com/api/login {"email":"test@test.com","password":"testpassword"}] status: 404, statusCode: 404,响应:未定义}

另一个奇怪的方面是这个错误被记录在我的超级代理响应处理程序中。所以我知道正在拨打电话并被拦截。

4

2 回答 2

12

好的——想通了。在深入研究文档后,我发现了 .log 函数。我像这样链接了我的 nock 配置

nock('https://test.com')
    .log(console.log)...

事实证明请求主体不匹配。

于 2015-12-31T01:15:15.457 回答
0

.send()替换为在 url 本身之后发送帖子正文作为第二个参数,并且.log之前不起作用.reply

于 2016-12-28T09:10:11.650 回答