【问题标题】:How to test meta.valid react final form如何测试 meta.valid 反应最终形式
【发布时间】:2018-09-25 10:54:12
【问题描述】:

我正在使用 react-final-form 来验证输入字段,如下所示:

buildInputComponent() {
return (
  <InputField
    id="input-field"
    label="description"
    isInvalid={meta.touched && !meta.valid}
    error={meta.error}
    value=input.value
    required
    onChange={(event) => {
      input.onChange(event.target.value);
    }}
  />);
}

我已经测试如下:

it('sets the frequency state to the value in the frequency select', () 
=>   {
       const inputValue = '30';
       testInput.find('input-field').find('input').hostNodes()
          .simulate('change', { target: { value: inputValue } });
     testInput.update();

   expect(testInput.find('ReactFinalForm').instance().state.schedule.frequency).toEqual(frequency);

  });'

这涵盖了 meta.touched 的测试,但覆盖率报告显示它不涵盖 !meta.valid 的测试 我不知道如何覆盖 !meta.valid 的测试 我尝试了如下的空字段:

testInput.find('input-field').find('input').hostNodes()
      .simulate('change', { target: { value: frequency } });

但这并没有涵盖它,请帮助

【问题讨论】:

    标签: reactjs react-native react-redux react-final-form


    【解决方案1】:

    我怀疑你的touched 总是错误的,因为你没有聚焦和模糊这个领域,所以&amp;&amp; 的后半部分永远不会被评估。

    【讨论】:

    • 又遇到问题了。我使用 {meta.invalid && meta.touched} 仍然没有覆盖触摸。该怎么做?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多