jest+@testing-library/react测试antd表单组件

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' } });这样赋值无效

阅读 5.2k
1 个回答

最后还是通过模拟用户选择select组件的过程解决的...
大概过程就是先通过getByLabelText获取对应form.item的inputElement然后fireEvent.mouseDown,然后再获取到option对应的元素,再触发点击时间,这样才给这个表单赋值...
顺便,如果要测试类似select或者各种picker这样用户点击后有动画的组件包括Modal.method()的各种dialog,就需要在点击表单项前jest.useFakeTimers();然后再fireEvent,之后jest.runAllTimers();再查找弹出的元素就可以找到了。都操作完了别忘了jest.useRealTimers()
想偷个懒直接赋值不行...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题