2017-03-03 5 views
1

Mocking kann ich nicht scheinen, einen Weg zu finden, eine wirklich einfache Sache wie die unten zu tun:eine Funktion mit Sinon

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> 
    ); 
    } 
} 

Alles, was ich testen will, ist, dass die onChange Funktion aufgerufen wird. Wie kann ich dies mit Hilfe von Sinon verspotten (wenn man bedenkt, dass es auf Requisiten beruht)? Ich werde dann simulieren, dass es aufgerufen wird, um es zu testen.

ich damit begonnen: const handleBodyChangeSpy = sinon.spy(); und wird dies erwarten: expect(handleBodyChangeSpy).to.have.not.been.called();

brauchen nur einige Hinweise, wie das

+0

Können Sie Ihren Test veröffentlichen? –

Antwort

0

tun ich Sie verwenden ES6 nehmen und class Component extends React.Component. In diesem Fall können Sie einen Spion erstellen, indem Sie var spy = sinon.spy(Component.prototype, "handleBodyChange") schreiben. Sie können Ihre Behauptungen auf diesem Spion prüfen.

Mehr über die Erstellung von Spionen hier: http://sinonjs.org/releases/v1.17.7/spies/ (siehe unter Erstellen von Spionen: sinon.spy() Methode Signaturen).

Verwandte Themen