模拟超级代理 post 请求与箭尾不匹配

Mocking superagent post request with nock not matching

我一辈子都无法处理一个简单的超级代理 post 请求。这是我的超级代理和箭尾配置。

超级代理:

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, response: undefined }

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

好的——明白了。在深入研究文档后,我找到了 .log 函数。我像这样链接了我的箭尾配置

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

事实证明请求正文不匹配。

.send() 被替换为 post 正文作为第二个参数发送到 url 本身之后 .log.reply[ 之前不起作用=13=]