Jest+enzyme 测试antd form

最近写单元测试,antd 的form 表单遇到了一些坑点线总结如下:

const wrapper = mount();
  1. input 框填入字符串值

            {getFieldDecorator('name', {
              rules: [{
                required: true
              }],
            })()}
 

则在input 中填入值如:

  wrapper.find('input#name').simulate('change', { target: { value: 'test' } });
  1. input 框中填整数值
 
            {getFieldDecorator('phoneNumber', 
              rules: [{
                message: t('eventForm.errorMessage.phoneNumberInvalid'),
                pattern: new RegExp('^[0-9]{10}$')
              }],
            })(
              
            )}
 

在input 中填入值如下:

wrapper.find('input#phoneNumber').prop('onChange')
({ currentTarget: { value: 1882925032 } });
  1. 对于select 的选择

            {getFieldDecorator('budget', {
              rules: [{
                required: true,
              }],
            })(
              
            )}
 

测试代码如下去模拟点击事件:

wrapper.find('#budget .ant-select-selection__rendered').simulate('click');
wrapper.find('.ant-select-dropdown-menu li').at(2).simulate('click');
  1. checkBox的多选
 
            {getFieldDecorator('purchaseObjective', {
              rules: [{
                required: true,
              }],
            })(
              
                A
                B
                C
              
            )}
  

测试代码如下:

 wrapper.find('#purchaseObjective input[value="A"]').simulate('change', { target: { value: 'A' } });
  1. 表单的提交
 
     
 

测试代码:

wrapper.find('form').simulate('submit');

不能通过找到button 元素然后click 的方法去提交表单

你可能感兴趣的:(Jest+enzyme 测试antd form)