如何测试元有效反应最终形式



我正在使用 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.touch 的测试,但覆盖率报告显示它不包括 !meta.valid 的测试 我不知道如何覆盖!meta.valid的测试 我尝试使用空字段,如下所示:

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

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

我怀疑你的touched总是假的,因为你没有聚焦和模糊场,因此&&的后半部分永远不会被评估。

相关内容

  • 没有找到相关文章