Я конвертирую некоторые старые тесты для использования Jest, и у меня есть функция, которая называется Services.Transactions.get
. Обычно вы передаете ему функцию обратного вызова для обработки данных, возвращаемых из удаленного API. В моих тестах я издеваюсь, используя
jest.spyOn(Services.Transactions, 'get').mockImplementation((callback) => { callback(someJsObject); });
Пока все хорошо.
Теперь проблема в том, что у него, в свою очередь, есть метод Services.Transactions.get.watch
. Модуль, который я тестирую, использует обе эти функции. Как только я высмеиваю первое из вышеперечисленных, я не могу издеваться над методом наблюдателя. Мне сказали, что Services.Transactions.get.watch
не является функцией.
Я пробовал:
- Определение функции с определенным пустым методом watch и использование ее в качестве реализации для get.
- Попытка также заменить метод watch с помощью вызовов mockImplementation
Ничего из вышеперечисленного не сработало. Файловые службы исходят не от модуля ES6, поэтому я предпочитаю избегать макетов на уровне модулей. У меня есть другие варианты?