# 1 Sử dụng Jest
Đây là cách tôi sử dụng hàm gọi lại giả Jest để kiểm tra sự kiện nhấp chuột:
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);
});
});
Tôi cũng đang sử dụng một mô-đun có tên là enzyme . Enzyme là một tiện ích thử nghiệm giúp xác nhận và chọn các Thành phần React của bạn dễ dàng hơn
# 2 Sử dụng Sinon
Ngoài ra, bạn có thể sử dụng một mô-đun khác có tên là Sinon , là một phần mềm gián điệp thử nghiệm độc lập, sơ khai và mô phỏng cho JavaScript. Cái này nó thì trông như thế nào:
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 Sử dụng gián điệp của riêng bạn
Cuối cùng, bạn có thể thực hiện một điệp viên ngây thơ của riêng mình (tôi không khuyến khích cách làm này trừ khi bạn có lý do chính đáng cho việc đó).
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);
});