2017-03-03 147 views
1

我似乎无法找到一种方法,做一个非常简单的事情,像下面:惩戒功能与兴农

render() { 
    return (
     <div className="messageDetail"> 
     <div className="messageForm" > 
      Name: <input id="senderMsgName" value={this.props.nameValue} onChange={this.props.handleNameChange}/> 
      <br /> 
      Body: <input id="senderMsgBody" value={this.props.bodyValue} onChange={this.props.handleBodyChange}/> 
      <br /> 
     </div> 
     </div> 
    ); 
    } 
} 

我所要测试的是,的onChange函数被调用。我怎么能用sinon嘲笑这件事(铭记它叫做道具)?然后我会模拟它被调用来测试它。

我开始用这样的:const handleBodyChangeSpy = sinon.spy(); 并期待这样的:expect(handleBodyChangeSpy).to.have.not.been.called();

只是需要怎么做

+0

你可以发布你的测试吗? –

回答

0

我假设你一些指导使用ES6和class Component extends React.Component。在这种情况下,您可以通过编写var spy = sinon.spy(Component.prototype, "handleBodyChange")来创建一个间谍。你可以测试你对这个间谍的断言。

更多关于如何创建间谍:http://sinonjs.org/releases/v1.17.7/spies/(请查看创建间谍:sinon.spy()方法签名)。