如何在Jest测试中查看console.log的终端输出?
如何在Jest测试终端中查看console.log输出
当然可以实现!在Jest测试里查看console.log的输出其实非常直观,我结合你的测试代码给你梳理具体操作:
第一步:确认Jest运行参数
Jest默认会捕获并打印测试中的console输出,但如果你的运行命令带了--silent参数,就会屏蔽所有console内容。所以先检查你的测试启动命令,比如如果是npm test -- --silent,把--silent去掉就行。第二步:直接运行测试
用常规命令执行测试即可,比如:npm test # 或者指定单个测试文件更高效 npm test -- src/__tests__/your-test-file.test.js运行后,你代码里的
console.log(rafSpy)就会在终端输出rafSpy这个Jest spy对象的详细信息,包括它的mock实现、调用记录等。如果还是看不到输出的排查点
- 检查
jest.config.js配置:确保verbose设为true(默认就是true),这个选项会让Jest输出更详细的测试过程,包括console内容。 - 确认没有手动覆盖
console:如果测试代码里有jest.spyOn(console, 'log').mockImplementation()这类代码,会屏蔽默认输出,需要暂时注释掉或者调整mock逻辑。
- 检查
举个例子,你的测试片段:
it("should not render coin if move time ended", () => { const rafSpy = jest.spyOn(window, "requestAnimationFrame"); console.log(rafSpy) // 这条输出会在终端显示 let rafCb; rafSpy.mockImplementation(cb => rafCb = cb); // ... 其余测试代码 });
只要按上面的步骤操作,终端就会打印出rafSpy的完整对象结构,帮你调试这个spy的状态。
内容的提问来源于stack exchange,提问作者Qwerty
相关产品推荐
相关产品推荐

