Jest+enzymeテストantd form

2787 ワード

最近の書き込みユニットテストでは、antdのformフォームにいくつかのピットラインがあり、以下のようにまとめられています.
const wrapper = mount();
  • inputボックス文字列値
  • を入力
    
                {getFieldDecorator('name', {
                  rules: [{
                    required: true
                  }],
                })()}
     
    

    次のようにinputに値を入力します.
      wrapper.find('input#name').simulate('change', { target: { value: 'test' } });
    
  • 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 } });
    
  • 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');
    
  • checkBoxの複数選択
  •  
                {getFieldDecorator('purchaseObjective', {
                  rules: [{
                    required: true,
                  }],
                })(
                  
                    A
                    B
                    C
                  
                )}
      
    

    テストコードは次のとおりです.
     wrapper.find('#purchaseObjective input[value="A"]').simulate('change', { target: { value: 'A' } });
    
  • フォームの発行
  •  
         
     
    

    テストコード:
    wrapper.find('form').simulate('submit');
    

    button要素を見つけてclickする方法でフォームをコミットすることはできません