React-Select & 用户事件库
React-Select & User-Event Library
我想使用 User-Event-Testing-Library (https://testing-library.com/docs/ecosystem-user-event/) 测试我的 react-select 组件。
我只想测试 select 是否在单击时打开菜单。
这是我的代码:
如果我使用 fireEvent 它可以工作,但是如果我使用 useEvent 它就不能工作..
// WORKING with fireEvent
test('should open select onclick', () => {
const wrapper = render(
<ReactSelect
className="select"
classNamePrefix="select"
options={[{ value: '0', label: 'Label' }]}
/>,
);
expect(
wrapper.container.getElementsByClassName('select__option').length,
).toBe(0);
userEvent.click(wrapper.container.querySelector('input'));
expect(
wrapper.container.getElementsByClassName('select__option').length,
).toBe(1);
});
// NOT WORKING with userEvent
test('should open select onclick', () => {
const wrapper = render(
<ReactSelect
className="select"
classNamePrefix="select"
options={[{ value: '0', label: 'Label' }]}
/>,
);
expect(
wrapper.container.getElementsByClassName('select__option').length,
).toBe(0);
userEvent.click(wrapper.container.querySelector('input'));
expect(
wrapper.container.getElementsByClassName('select__option').length,
).toBe(1);
});
我终于将 Jest 升级到 v26,它正在运行。
我想使用 User-Event-Testing-Library (https://testing-library.com/docs/ecosystem-user-event/) 测试我的 react-select 组件。
我只想测试 select 是否在单击时打开菜单。
这是我的代码:
如果我使用 fireEvent 它可以工作,但是如果我使用 useEvent 它就不能工作..
// WORKING with fireEvent
test('should open select onclick', () => {
const wrapper = render(
<ReactSelect
className="select"
classNamePrefix="select"
options={[{ value: '0', label: 'Label' }]}
/>,
);
expect(
wrapper.container.getElementsByClassName('select__option').length,
).toBe(0);
userEvent.click(wrapper.container.querySelector('input'));
expect(
wrapper.container.getElementsByClassName('select__option').length,
).toBe(1);
});
// NOT WORKING with userEvent
test('should open select onclick', () => {
const wrapper = render(
<ReactSelect
className="select"
classNamePrefix="select"
options={[{ value: '0', label: 'Label' }]}
/>,
);
expect(
wrapper.container.getElementsByClassName('select__option').length,
).toBe(0);
userEvent.click(wrapper.container.querySelector('input'));
expect(
wrapper.container.getElementsByClassName('select__option').length,
).toBe(1);
});
我终于将 Jest 升级到 v26,它正在运行。