Отслеживать вызов неэкспонированной функции в шутку

#jestjs

Вопрос:

У меня есть экспортированная функция, которая вызывает несообщенные функции, подобные этой:

 function unexported() { // do smth }

export function exported() {
  unexported()
}
 

Можно ли в шутку как-то отследить этот звонок?

Поскольку функция не подвергается насмешкам 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(),
}))
 

Это тоже совсем не работает. Экспортированная функция вызывает настоящую, а не мою подделку.

Комментарии:

1. Вы не можете и не должны этого делать — это то же самое, что издеваться над частным методом, это деталь реализации . Вместо этого проверьте поведение .