#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. Вы не можете и не должны этого делать — это то же самое, что издеваться над частным методом, это деталь реализации . Вместо этого проверьте поведение .