我有以下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;它运行正常,并做我需要做的事情。
答案 0 :(得分:1)
更新
使用stub
代替spy
断言逻辑错误,你需要断言如下
expect(onClickSpy.callCount).to.equal(1);