jestjs - 当我需要模拟 console.log 作为测试的一部分时,如何在开玩笑测试期间打印日志?
问题描述
我想在使用 Jest 测试时打印一些东西到控制台,以检查值,但同时,我需要模拟该console.log
函数,因为我想检查我正在测试的函数是否试图调用它。
作为测试的一部分,我认为 Jest 会有自己的功能将一些日志打印到控制台,但我找不到类似的东西。
通过模拟 console.log 我失去了将内容记录到控制台以进行调试的能力。有没有办法解决这个问题?
解决方案
你想监视它而不是嘲笑它。
所以像:
let consoleLogSpy = jest.spyOn(console, “log”)
.
然后你可以这样做:
expect(consoleLogSpy).toHaveBeenCalledTimes(1)
和/或
expect(consoleLogSpy).toHaveBeenCalledWith(“text”)
.
主要外卖
模拟改变了功能,间谍保持不变。
推荐阅读
- asp.net - 对象引用未设置为对象的实例在 IIS 6.2 中发布
- javascript - 承诺不返回路线
- ruby-on-rails - 使用设计 CORS 或 CSP 进行 Ember 身份验证?问题
- phpstorm - 在 PhpStorm 中,Ctrl+Click 可以转到 PHP 中的类定义而不是构造函数吗?
- f# - 定义可区分联合的默认值
- java - 使用 Java 8 流如何转换 Map
> 到地图 ? - javascript - 用一个变量索引一个对象的多层次深度
- mysql - 选择在联合中花费大量时间按日期顺序排序?
- javascript - .data() 如何为元素添加数据属性?
- javascript - 根据窗口大小设置 textarea 元素高度