React sinon /酶模拟点击es6类功能

时间:2017-07-13 10:30:15

标签: reactjs ecmascript-6 mocha sinon enzyme

我想测试按钮点击reactcript类的react组件。 这是组件代码:

export default class Send extends Component ... {

 constructor(super) {...}

 selectAll() {...}

 render() {
  <button id="selectAll" onClick={this.selectAll.bind(this)}>Add<button/>
 }
}

我的测试是:

it('should select all if selectAll button is clicked', () => {
    const wrapper = shallow(<Send {...props} />);
    const selectAll = sinon.spy(wrapper.instance(), 'selectAll');

    const selectAllButton = wrapper.find('#selectAll');

    selectAllButton.simulate('click');

    expect(selectAll.calledOnce).to.equal(true);

  });

这就是我得到的:

      AssertionError: expected false to equal true

有什么想法吗?感谢

1 个答案:

答案 0 :(得分:2)

好的,我发现了问题所在。我不得不添加

wrapper.instance().forceUpdate();

在声明sinon.spy(...)之后,现在它正常工作。