首页 > 解决方案 > 在 Jest 中跟踪对未公开函数的调用

问题描述

我有一个导出的函数,它调用了这样的未导出函数:

function unexported() { // do smth }

export function exported() {
  unexported()
}

在 Jest 中是否有可能以某种方式跟踪这个电话?

由于该函数没有公开模拟它jest.fn()jest.spyOn()什么都不做,因为导出的函数调用的是真实函数而不是我的模拟。

我试图像这样硬编码它:

import * as myFuncs from '/path/to/file'

myFuncks.unexported = jest.fn()

这显然是行不通的。

我还尝试在导入模块时伪造此功能:

jest.mock('/path/to/file', () => ({
  ...(jest.requireActual('/path/to/file')),
  unexported: jest.fn(),
}))

那也根本行不通。导出的函数调用的是真实的,而不是我的假的。

标签: jestjs

解决方案


推荐阅读