Я не использую spyOn (), но вместо этого jest.fn () для всех ложных сценариев
В вашем случае я бы сделал следующее
test('helper function was called', () => {
Utils.capitalHelper = jest.fn((s) => Utils.capitalHelper(s))
const newString = Utils.getCapitalName('john')
expect(Utils.capitalHelper.mock.calls.length).toBe(1)
})
Первая строка может иметь простоbe:
Utils.capitalHelper = jest.fn()
, поскольку вы не проверяете возвращаемое значение в своем тесте:)
Более подробную информацию о jest.fn () вы можете найти в официальной документации jest.: https://facebook.github.io/jest/docs/en/mock-functions.html
----------------------- РЕДАКТИРОВАТЬ
Я понял: проблема возникает потому, что внутри вашегоФайл utils.js, getCapitalName использует определенную функцию, а не ту, на которую указывает экспорт.
Чтобы иметь возможность смоделировать используемую функцию, вы можете изменить файл utils.js на
// utils.js
const Utils = {
capitalHelper: string => string.toUpperCase(),
getCapitalName: inputString => Utils.capitalHelper(inputString.charAt(0)) + inputString.slice(1)
}
export default Utils
тогда тесты, которые я давал раньше, будут работать