Пожалуйста, помогите мне разобраться в шутках Джеста.
Я поместил несколько фиктивных функций в файл:
// actions.js
export function f1() {
return 1
}
export function calls_f1() {
f1()
}
А затем в своем тестовом файле я пытаюсь понять, какпроверьте, что функция вызывает другую функцию:
import * as actions from './actions.js'
describe("MOCKS", () => {
actions.f1 = jest.fn();
actions.calls_f1();
expect(actions.f1).toBeCalled();
});
Но тест не проходит, сообщая, что фиктивная функция не была вызвана.Я также попытался поменять местами 2-ю и 3-ю строчки теста, но безрезультатно.
Мой jest config все в порядке, на самом деле я проводил кучу других испытаний (в этом же файле)работает.
Что мне здесь не хватает?
Примечание. Фактическая реализация этого (что я здесь значительно упрощаю) включает в себя файл actions
, который включает в себя открытый export function fetchStations()
, который вызывает приватный (или, скорее, не экспортируемый) export function _downloadStations()
.Я пытаюсь проверить, что _downloadStations()
называется.
Я использую import * as actions
только для удобства, поэтому я могу написать эту строку и затем использовать любые функции, которые файл экспортирует в actions.whatever()
(вместо необходимости добавлять функции в оператор импорта, когда я решаюиспользуй их).Если import * as actions
имеет какой-то эффект, который я не замечаю (как подразумевает Брайан ниже), то, конечно, мне не нужно его использовать, и, конечно, я могу использовать import {thisAction, thatAction} from './actions'
.