Unit testing react jest使用事件对子组件进行单元测试

Unit testing react jest使用事件对子组件进行单元测试,unit-testing,reactjs,jestjs,Unit Testing,Reactjs,Jestjs,如果我有一个子组件,它有一个onclick事件,而onclick事件又调用父事件处理程序,那么单元测试的最佳方法是什么?在我的例子中,当用户单击按钮时,按钮的文本值会发生变化-这在this.props.myEvent中处理 我的单元测试在测试初始值时起作用 expect(button.getDOMNode().textContent).toEqual('startValue'); ,但当用户单击按钮并且按钮值更新为某个值时,如何创建单元测试 就我而言,我有一个按钮: var React =

如果我有一个子组件,它有一个onclick事件,而onclick事件又调用父事件处理程序,那么单元测试的最佳方法是什么?在我的例子中,当用户单击按钮时,按钮的文本值会发生变化-这在this.props.myEvent中处理

我的单元测试在测试初始值时起作用

expect(button.getDOMNode().textContent).toEqual('startValue');
,但当用户单击按钮并且按钮值更新为某个值时,如何创建单元测试

就我而言,我有一个按钮:

var React  = require('react');

module.exports = React.createClass({
  myEvent: function(a,b){
    this.props.myEvent(a, b);
  },
  render: function() {
    return (
        <button name="myButton" id={this.props.id} onClick={this.myEvent.bind(this.props.a,this.props.b)}>{this.props.value}</button>
    )
  }
});

谢谢

您可以用插件模拟点击:


所以在我的例子中,按钮的值在用户点击后改变。在我的单元测试中,我使用'expectbutton.getDOMNode.textContent.toEqual'initialValue';'检查按钮文本的初始值然后我按照你的建议去做。Simulate.Click-但是,当我在模拟单击之后检查按钮文本的值时,该值保持不变。
React.addons.TestUtils.Simulate.click(button.getDOMNode());