有两种选择,要么_handleCloneClick在渲染组件之前监视组件的原型:
export default class cloneButton extends Component {
  constructor(...args) {
    super(...args);
    this. _handleCloneClick = this. _handleCloneClick.bind(this);
  }
  _handleCloneClick() {
    event.preventDefault();
    event.stopPropagation();
    this.props.handleClone(this.props.user.id);
  }
  render() {
    return (<button onClick={this. _handleCloneClick}>Clone</button>);
  }
}
在你的测试中: 
it('clone should call handleCloneClick when clicked', () => {
  sinon.spy(cloneButton.prototype, '_handleCloneClick');
  const wrapper = mount(<cloneButton/>);
  wrapper.find('#clone-btn').simulate('click');
  expect(spy).toHaveBeenCalled() //adept assertion to the tool you use
});
或者,您可以尝试在渲染组件后设置 spy 并在之后调用wrapper.update():
it('clone should call handleCloneClick when clicked', () => {      
  const wrapper = mount(<cloneButton/>);
  sinon.spy(wrapper.instance(), "_handleCloneClick");
  wrapper.update();
  wrapper.find('#clone-btn').simulate('click');
  expect(spy).toHaveBeenCalled() //adept assertion to the tool you use
});