AssertionError:期望[Function:proxy]具有属性' callCount' 1,但得到0

时间:2016-10-31 00:20:57

标签: reactjs sinon enzyme

我有以下React组件,我希望Button能够使用Sinon和Enzyme模拟点击和测试。

import React, {PropTypes} from 'react';

class Button extends React.Component {
  constructor(props, context) {
    super(props, context);
  }

  render() {
     return (
       <div className="button">
         <button type="button" className="btn btn-default"
             onClick={this.props.increment}>State</button>
       </div>
     );
  }
}


export default Button;

出于某种原因,我的Sinon测试失败了:

describe('on clicking submit', ()=> {
    it('calls submit', () => {
      const onClickSpy = sinon.spy();
      const wrapper = shallow(
        <Button onClick={onClickSpy} />
      );
      wrapper.find('.button').simulate('click');
      expect(onClickSpy).to.have.property('callCount', 1);
    });
  });

错误:

AssertionError: expected [Function: proxy] to have a property 'callCount' of 1, but got 0

我的设置中缺少什么?

请注意,我的代码工作正常,就像我开始使用npm一样 - &gt;它运行正常,并做我需要做的事情。

1 个答案:

答案 0 :(得分:1)

更新

使用stub代替spy

断言逻辑错误,你需要断言如下

expect(onClickSpy.callCount).to.equal(1);