我尝试自动化React生成的页面:在页面中记录用户交互,然后将其播放以进行测试。
在最简单的情况下,播放设置各种输入的值并触发更改事件
不幸的是,在我的代码设置了值并模拟了表单提交按钮上的点击后,React会介入并将值重置为其内部模型中的值。
有没有办法强制React从DOM中的值更新?
如果没有,在给定DOM节点的情况下,有没有办法可以挂钩React并更改值?
类似于(完全虚假的伪代码):require("react").findComponentForDomNode('xxx').setValue('yyy') ?
答案 0 :(得分:0)
确保您的表单正在使用"不受控制的"组件,或者至少是您允许用户在受控组件中输入的内容。
http://facebook.github.io/react/docs/forms.html
或者,您应该可以使用React的测试实用程序来完成此任务:
http://facebook.github.io/react/docs/test-utils.html
这使您可以执行以下操作:
React.addons.TestUtils.Simulate.change(node, {target: {value: 'Hello, world'}});