首页 > 解决方案 > 当我需要模拟 console.log 作为测试的一部分时,如何在开玩笑测试期间打印日志?

问题描述

我想在使用 Jest 测试时打印一些东西到控制台,以检查值,但同时,我需要模拟该console.log函数,因为我想检查我正在测试的函数是否试图调用它。

作为测试的一部分,我认为 Jest 会有自己的功能将一些日志打印到控制台,但我找不到类似的东西。

通过模拟 console.log 我失去了将内容记录到控制台以进行调试的能力。有没有办法解决这个问题?

标签: jestjs

解决方案


你想监视它而不是嘲笑它。

所以像:

let consoleLogSpy = jest.spyOn(console, “log”).

然后你可以这样做:

expect(consoleLogSpy).toHaveBeenCalledTimes(1)

和/或

expect(consoleLogSpy).toHaveBeenCalledWith(“text”).

主要外卖

模拟改变了功能,间谍保持不变。


推荐阅读