Antd Select 组件有一个 onFocus 事件,可以在获取焦点时触发。如果需要在测试中使用该事件,可以借助 Enzyme 来模拟用户的操作。具体步骤如下:
npm install --save-dev enzyme enzyme-adapter-react-16
import React from 'react';
import { mount } from 'enzyme';
import { Select } from 'antd';
import EnzymeAdapter from 'enzyme-adapter-react-16';
Enzyme.configure({ adapter: new EnzymeAdapter() });
describe('Select Component', () => {
it('should trigger onFocus event', () => {
const onFocusMock = jest.fn();
const wrapper = mount(
,
);
wrapper.find('.ant-select-selector').simulate('focus');
expect(onFocusMock).toHaveBeenCalledTimes(1);
});
});
以上的代码中,首先定义了一个 onFocusMock 函数来接收 onFocus 事件的触发;然后 mount 了一个 Select 组件;接着,使用 wrapper.find() 方法来找到 Select 的输入框,并模拟 focus 事件;最后,使用 jest.fn() 方法来验证 onFocusMock 函数是否被调用了 1 次。
这样,就可以在测试中使用 Antd Select 组件的 onFocus 事件了。