【问题标题】:`EPIPE` error while testing POST request using Jest使用 Jest 测试 POST 请求时出现“EPIPE”错误
【发布时间】:2017-10-07 03:22:44
【问题描述】:

我有一个简单的服务器,它接受POST 请求并在请求正文超出允许大小时以413 Request entity too large 错误响应。当我使用 Jest 对其进行测试时,请求有时会返回正确的错误,但更多时候它会返回 { code: EPIPE, syscall: write } 错误。

我使用 cURL 和节点 javascript 文件测试了服务器,并且服务器按预期工作,但 Jest 测试仍然给我这个错误。我还尝试了另一个请求库,他们给出了同样的错误。

beforeAll(() => {
  server.listen(testingPort);
});

afterAll(() => {
  server.close();
});

describe("POST request", () => {
  test("should return error 413 in respense to exceeded file size", async () => {
    const fileContent = new Array(1024 * 1024 + 10).join("*");
    const fileName = "post-test-file.txt";
    const urlObj = new URL(fileName, host);

    try {
      await axios.post(urlObj.href, fileContent);
    } catch (e) {
      console.log(e.code, e.errno, e.syscall); // EPIPE EPIPE write
      // expect(e.response.status).toBe(413);
    }
  });

也许你对此有任何想法?

【问题讨论】:

    标签: javascript node.js jestjs


    【解决方案1】:

    这个问题似乎很老了,还没有完全解决:

    https://github.com/nodejs/node/issues/947

    对我来说,解决方法是使用流。

    【讨论】:

      猜你喜欢
      • 2020-09-14
      • 1970-01-01
      • 2022-01-18
      • 2016-08-25
      • 1970-01-01
      • 1970-01-01
      • 2019-06-16
      • 1970-01-01
      • 2021-11-26
      相关资源
      最近更新 更多