javascript - 使用 reactJs TestUtils 模拟文本输入

标签 javascript unit-testing reactjs reactjs-testutils

我希望能够使用 reactjs 模拟用户在文本框中键入内容,以便测试我的验证状态消息。

我有一个在 keyUp 上验证的 react 组件

下面是我尝试过的一个简单示例。

nameInput.props.value = 'a';
React.addons.TestUtils.Simulate.keyUp(nameInput);
React.addons.TestUtils.findRenderedDOMComponentWithClass(component, 'has-error');

当我在验证器中调试时,这似乎并没有改变绑定(bind)文本框的值

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' } }); 或类似的东西来模拟修改实际值。

关于javascript - 使用 reactJs TestUtils 模拟文本输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24730019/

相关文章:

java - Android:测试改造成功、失败

javascript - jest 监视组件功能

javascript - 为什么 Date.now() 是一个非纯函数?

javascript - Meteor - Ckeditor 集成

javascript - 在 Node.js cli 中从 Dropbox 下载文件

javascript - 如何从由DiagramBuilder.toJSON()返回的JSON创建AlloyUIDiagramBuilder?

javascript - 使用 NPM 管理文件依赖关系

c# - 单元测试模拟框架是否会以您的编程方式强制您?

unit-testing - CakePHP fatal error : Class 'ErrorHandler' not found

reactjs - 样式组件再水化成本高吗?