The following two unit tests demonstrate the scenario where you would want to write a unit test to verify whether a method was called with the required parameters. It also tests how many times a method was invoked by passing a mock method.
Enzyme
import { shallow } from 'enzyme';
import sinon from 'sinon';
import Foo from './Foo';
describe('Random Component', () => {
it('should render blah blah...', () => {
const onButtonClick = sinon.spy();
const wrapper = shallow(<Foo funcToBeCalled={onButtonClick} />);
wrapper.find('button').simulate('click');
expect(onButtonClick.calledOnce).to.equal(true);
expect(onButtonClick.calledWith('param1', 'param2')).to.equal(true);
});
...
});Jest
import { shallow } from 'enzyme';
...
import Foo from './Foo';
describe('Random Component', () => {
it('should render blah blah...', () => {
const mockFunction = jest.fn();
const wrapper = shallow(<Foo funcToBeTested={mockFunction} />);
wrapper.find('button').simulate('click');
expect(mockFunction.mock.calls.length).toBe(<span class="hljs-number">1</span>);
expect(mockFunction).toBeCalledWith('param1', 'param2');
});
...
});