2017-03-03 103 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()方法簽名)。