jest+@testing-library/react测试antd表单组件
类似select或者date time这类的表单项如何给这个表单项赋值?
像input,我是用fireEvent.input(getByLabelText('Report Name'), { target: { value: 'unittest' } });
这样赋值的可以
select用fireEvent.change(getByLabelText('Report Type'), { target: { value: 'Regulatory' } });
这样赋值无效
最后还是通过模拟用户选择select组件的过程解决的...
大概过程就是先通过getByLabelText获取对应form.item的inputElement然后fireEvent.mouseDown,然后再获取到option对应的元素,再触发点击时间,这样才给这个表单赋值...
顺便,如果要测试类似select或者各种picker这样用户点击后有动画的组件包括
Modal.method()
的各种dialog,就需要在点击表单项前jest.useFakeTimers();
然后再fireEvent
,之后jest.runAllTimers();
再查找弹出的元素就可以找到了。都操作完了别忘了jest.useRealTimers()
想偷个懒直接赋值不行...