我们都喜欢console.log调试我们的应用程序。如果某些事情没有按预期工作,我们会输入控制台日志以查看发生了什么。除了用于调试目的之外,我们还可以将此信息用于我们的测试。在测试中,我们通常会调用具有特定输入的函数并期望特定的输出。有时测试函数开始和结束之间发生的中间步骤也很有用,例如检查警告和错误是否正确记录。
测试控制台日志
在 Jest 中,我们有两种方法来验证它是否console.log如我们所期望的那样被调用。首先,我们可以用 mock 函数jest.fn(),暂时用一个虚拟函数代替原来的控制台日志函数。但是,我个人更喜欢第二种选择,即使用jest.spyOn()拦截对控制台日志的函数调用并跟踪它们。这不会改变控制台日志的原始行为,这意味着我们仍然会看到打印到控制台的消息。
// function to be tested and imported from somewhere else
function someComplexFunction() {
console.log("some important message"