# 1 Mit Scherz
So verwende ich die Jest-Mock-Callback-Funktion, um das Klickereignis zu testen:
import React from 'react';
import { shallow } from 'enzyme';
import Button from './Button';
describe('Test Button component', () => {
it('Test click event', () => {
const mockCallBack = jest.fn();
const button = shallow((<Button onClick={mockCallBack}>Ok!</Button>));
button.find('button').simulate('click');
expect(mockCallBack.mock.calls.length).toEqual(1);
});
});
Ich benutze auch ein Modul namens Enzym . Enzyme ist ein Testdienstprogramm, mit dem Sie Ihre Reaktionskomponenten leichter bestätigen und auswählen können
# 2 Verwenden von Sinon
Sie können auch ein anderes Modul namens Sinon verwenden, das ein eigenständiger Testspion, Stubs und Mocks für JavaScript ist. So sieht es aus:
import React from 'react';
import { shallow } from 'enzyme';
import sinon from 'sinon';
import Button from './Button';
describe('Test Button component', () => {
it('simulates click events', () => {
const mockCallBack = sinon.spy();
const button = shallow((<Button onClick={mockCallBack}>Ok!</Button>));
button.find('button').simulate('click');
expect(mockCallBack).toHaveProperty('callCount', 1);
});
});
# 3 Verwenden Sie Ihren eigenen Spion
Schließlich können Sie Ihren eigenen naiven Spion machen (ich empfehle diesen Ansatz nur, wenn Sie einen gültigen Grund dafür haben).
function MySpy() {
this.calls = 0;
}
MySpy.prototype.fn = function () {
return () => this.calls++;
}
it('Test Button component', () => {
const mySpy = new MySpy();
const mockCallBack = mySpy.fn();
const button = shallow((<Button onClick={mockCallBack}>Ok!</Button>));
button.find('button').simulate('click');
expect(mySpy.calls).toEqual(1);
});