我正在使用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 } });
但是这没有涵盖它,请帮助
答案 0 :(得分:0)
我怀疑您的touched
总是错误的,因为您没有聚焦和模糊视野,因此&&
的后半部分从未评估过。