带有发布请求和文件附件的 Nock

pea*_*ast 5 javascript nock react-redux axios

使用 Nock.js 模拟带有 csv 文件附件的 HTTP Post 请求时遇到问题。

有了superagent这个是可能的:

authenticatedSession
      .post('/foo')
      .set('Content-Type', 'multipart/form-data')
      .attach('csv', barCsv)
      .expect(200)
Run Code Online (Sandbox Code Playgroud)

使用axios,请求将如下所示:

const config = { headers:
    {
      'Content-Type': 'multipart/form-data'
    } };

    const formData = new FormData();
    formData.set('fooCsv', file);

 axios.post(`${API_URL}/foo`, formData, config)
Run Code Online (Sandbox Code Playgroud)

但是有了 nock,下面的请求还没有达到。

nock(API_URL)
   .matchHeader('content-type', 'multipart/form-data')
   .post('/foo', formData)
   .reply(200, successfulResponse);
Run Code Online (Sandbox Code Playgroud)

唯一的“有用”错误是:Error: Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream.

如何重新格式化 axios 和/或 nock 请求?如何将适当的 formData.post与 nock匹配?