如何使用Jest与jsdom来测试console.log?

The*_*ith 14 javascript unit-testing jestjs

我刚刚开始使用Jest,我已经成功编写了测试DOM的单元测试.我有一个可以在屏幕上输入内容的,所以我可以测试一下.在某些情况下,我的图书馆会吐出一个console.warn或多个,而不是抛出错误console.log.是否可以使用Jest来测试这些控制台消息是否正在发生?

And*_*rle 35

你可以通过这样的间谍设置​​console.log:

global.console = {
  warn: jest.fn(),
  log: jest.fn()
}

// run your code

expect(global.console.log).toHaveBeenCalledWith('test')
Run Code Online (Sandbox Code Playgroud)

由于您的测试文件在单独的线程中运行,因此无需重置console为原始方法