Все еще открыт для предложений, но я закончил тем, что отказался от экспорта по умолчанию:
// UniqueIdGenerator.js
export const uniqueIdGenerator = () => Math.random().toString(36).substring(2, 8);
И тогда я мог бы использовать и шпионить так:
import * as UniqueIdGenerator from './UniqueIdGenerator';
// ...
const spy = jest.spyOn(UniqueIdGenerator, 'uniqueIdGenerator');
Некоторые рекомендуют обернуть их в const-объект и экспортировать его.Я полагаю, вы также можете использовать класс для переноса.
Однако, если вы не можете изменить класс, есть еще (не очень приятное) решение:
import * as UniqueIdGenerator from './UniqueIdGenerator';
// ...
const spy = jest.spyOn(UniqueIdGenerator, 'default');