4

私の人生では、単純なスーパーエージェントの投稿リクエストでノックを機能させることはできません。これが私のスーパーエージェントとノックの両方の設定です。

スーパーエージェント:

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 から次のエラーが表示されます。

{ [エラー: ノック: リクエスト POST https://test.com/api/login {"email":"test@test.com","password":"testpassword"}] ステータス: 404、statusCode: 404、応答: 未定義}

もう 1 つの奇妙な点は、このエラーがスーパーエージェントの応答ハンドラーに記録されていることです。したがって、通話が行われ、傍受されていることがわかります。

4

2 に答える 2

12

わかりました-それを理解しました。ドキュメントをもう少し掘り下げた後、 .log 関数を見つけました。私は自分のnock configをそのように連鎖させました

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

リクエストボディが一致していなかったことが判明しました。

于 2015-12-31T01:15:15.457 に答える
0

.send()URL自体の後に投稿本文を2番目のパラメーターとして送信することで置き換えられ、.log以前は機能しませんでした.reply

于 2016-12-28T09:10:11.650 に答える