Ich verwende Enzym/Mokka, um meine reagierende Komponente zu testen.Enzym/Mocha: So testen Sie eine Reaktionskomponente Funktion durch Auslösen eines OnChange-Ereignisses von einer untergeordneten Komponente
Ich habe eine Elternkomponente, die ich testen.
let wrapper = mount(<Parent />);
und dieser Elternteil hat eine untergeordnete Komponente darin Funktion ist machen
render: function() {
<Child onChange={this.foo} />
},
foo: function() {
console.log("I was called");
}
Ich würde das onChange Funktion des Kindes wie so abzufeuern, dass ich meine Eltern foo Funktion testen kann.
Bis jetzt habe ich keine Möglichkeit gefunden, dies zu tun - ich habe über Sinon und Stubbing gelesen, aber das ist hauptsächlich über Abfangen von Funktionen und nicht feuern sie.
Der folgende Test
shallow(<Parent />).instance().foo();
ist ein schwacher Test, weil es nicht die Codezeile testet mein Kind und Eltern verbinden, und für den Fall, habe ich nicht einen Komponententest für mein Kind geschrieben, es testet die OnChange-Funktion des Kindes auch nicht. IMHO - Wenn meine Komponenten Eltern/Kinder bedeutet weniger Testbarkeit Zerschlagung - dann ist etwas falsch mit diesem Rahmen
Jede Hilfe geschätzt wird, dank
Wenn Sie die 'foo testen()' Methode in den Elterntests und die Fähigkeit des Kindes auslösen 'props.onChange()' (mit 'sinon.spy()') in den Kinder Tests, dann IMO Sie don Ich muss nicht testen, dass React 'this.foo' aufrufen kann, wenn das Kind' props.onChange' aufruft. Genauso wie Sie nicht testen müssen, dass React 'rendern' ('' '' ''' '' '' '' '' '' '' '' '' '' '' '' '' '' 'Requisiten' 'oder' 'componentWillReceiveProps()'' repliziert. –