如何捕获或抑制来自Jest的拒绝的网络请求?

时间:2019-07-26 21:15:32

标签: jestjs jsdom

我正在研究HTTP模拟库,并且正在编写一个测试来断言我的库没有 not 截取对特定URL的请求。我正在使用Jest。

这是测试:

test("it can passthrough individual paths", async () => {
  server.passthrough("/addresses");

  try {
    await fetch("/addresses");
  } catch (e) {
    expect(1).toEqual(1);
  }
});

测试通过,但这是我的输出:

screen

我认为这是jsdom由于未处理的网络请求而编写了错误。但就我而言,这是预期的。

如何隐藏或忽略此控制台消息?当我在以前的QUnit设置中的浏览器中运行这些测试时,一旦我使用catch处理该错误,就不会在屏幕上打印任何额外的日志记录了。希望在这里有类似的东西,而无需我去修补fetchconsole

1 个答案:

答案 0 :(得分:0)

这似乎是jsdom的virtual console(它将与代码流无关地报告所有请求错误(以及未被捕获时的脚本错误),就像浏览器一样)。您可以相对轻松地抑制输出:

jest.config.js

const { VirtualConsole } = require('jsdom');
const virtualConsole = new VirtualConsole();
// default virtualConsole has sendTo(console) defined

module.exports = {
  "testEnvironmentOptions": { virtualConsole }
}