用reactJs testtils模拟文本输入
Simulating text entry with reactJs TestUtils
我希望能够使用reactjs模拟用户在文本框中输入,以便我可以测试我的验证状态消息。
我有一个react组件验证keyUp
下面是我尝试过的一个简单的例子。
nameInput.props.value = 'a';
React.addons.TestUtils.Simulate.keyUp(nameInput);
React.addons.TestUtils.findRenderedDOMComponentWithClass(component, 'has-error');
当我在验证器
中调试时,这似乎不会改变绑定文本框的值。React.addons.TestUtils.Simulate.keyUp(nameInput, {key: 'a'});
React.addons.TestUtils.findRenderedDOMComponentWithClass(component, 'has-error');
这个也没有
有人能指出我在正确的轨道上,第二个是内联的文档,我可以在模拟(http://facebook.github.io/react/docs/test-utils.html)周围找到,第一个对我来说是有意义的(设置实际的文本框值,然后伪造一个事件)
通过设置nameInput.props.value = 'a';
,您实际上并没有更新组件中的值。
您应该使用React.addons.TestUtils.Simulate.change(nameInput, { target: { value: 'a' } });
或类似的东西来模拟修改实际值。
我发现这种语法更适合我:
const emailInput = component.refs.userEmailInput;
emailInput.value = 'test@gmail.com';
Simulate.change(component.refs.userEmailInput);
第二行用文本'test@gmail.com'更新输入。最后一行触发更改
相关文章:
- 让文本输入幻灯片显示输入时的新文本输入?然后向后滑动
- Sails.js:同时发布文本输入和一个文件
- 来自文本输入null的html javascript变量
- 当没有文本输入聚焦时检测空格键按下
- JS中的按钮和文本输入
- JavaScript:在调用函数的文本输入上按enter键
- jQuery自动完成功能不适用于多个文本输入
- 使用JS从选择和文本输入中捕获值,并将输出返回到HTML
- 如何通过jQuery发送选定的元素和文本输入
- HTML如何根据javascript函数的返回值限制文本输入
- jquery插件或javascript方法自动调整文本输入(而非文本区域)(固定宽度)可变高度的大小
- 在jquery中获取文本输入val始终为空
- HTML文本输入大小
- 文本输入与文本区域
- 角度ui选择标记模糊时丢失文本输入
- 文本输入值中的JavaScript变量
- Angular指令中的最佳实践是将文本输入设置为英尺和英寸的格式
- 如何在不通过模型验证的情况下屏蔽文本输入中输入的字符
- 在文本输入区域中创建双向更新
- 不使用自定义CSS或HTML(使用框架方法)的角度材质文本输入或文本区域标签大小