我想为输入表单编写测试,但无法触发 Blur 事件。
我有一个包含以下输入元素的反应组件:
<input
id='email'
onBlur={this.handleInputChange}
name='email'
type='text'
/>
我还在email状态中定义了一个设置状态的函数:
handleInputChange = (event) => {
this.setState({ email: event.target.value });
};
我的测试文件中有以下内容:
const inputs = component.find('input');
expect(inputs.length).toEqual(2); // test case passes
inputs.at(0).simulate('blur', { target: { value: 'abc@hello' } });
expect(inputs.at(0).props().value).toEqual('abc@hello'); //test fails
如果我尝试模拟更改事件,测试也会失败: inputs.at(0).simulate('change', { target: { value: 23 } });
在这两种情况下,我都会收到错误:
Expected: "abc@hello"
Received: undefined
看来我的代码没有触发该事件。谁能告诉我我做错了什么
尚方宝剑之说
有只小跳蛙
HUX布斯
相关分类