The key is using jests spyOn
method on the object’s prototype
. It should be like this:
const spy = jest.spyOn(Component.prototype, 'methodName');
const wrapper = mount(<Component {...props} />);
wrapper.instance().methodName();
expect(spy).toHaveBeenCalled();
As found here e.g.: Test if function is called react and enzyme
Please note it is also best practice to clear the spied function after each test run
let spy
afterEach(() => {
spy.mockClear()
})
https://facebook.github.io/jest/docs/en/jest-object.html#jestclearallmocks