2016-05-17 4 views
1

Zum Testen Im mit JSDom, Mocha, Chai und ReactTestUtils.reagieren testUtils simulieren klicken Sie auf ein Optionsfeld nicht auslösende onchange

Einer meiner Komponente hat drei Radiobutton, dass, wenn eine Änderung erkannt wird (onChange) wird eine Funktion ausgeführt.

Alles funktioniert in manuellen Tests, aber ich kann nicht scheinen, die Funktion auszulösen, wenn ich simulate.Click darauf verwende.

 var FrequencyFormInstance = ReactTestUtils.findRenderedComponentWithType(rootElement, FrequencyForm); 
     var frequencyNode = ReactDom.findDOMNode(FrequencyFormInstance); 

     var oneOfTheRadioButton = frequencyNode.children[1].children[2]; 

     ReactTestUtils.Simulate.click(oneOfTheRadioButton); 

dann einige behaupten mir zeigen, dass die Funktion in der Komponente wurde nie lief, so dass es nie die Änderung festgestellt (der Klick auf das Optionsfeld).

irgendein Hinweis warum?

+0

Haben Sie das Problem gelöst? –

+0

Von was ich rmb habe ich 'simulate.click' zu' simulate.change' geändert und es hat funktioniert. Sind Sie auf dasselbe Problem gestoßen? – user308553

+0

ja, aber ich änderte onChage-Handler sonst zu onClick und verwendete Simulate.click-Methode. Soweit ich weiß, entspricht es React docs. –

Antwort

0

Dies ist etwas, das hier beschrieben wird: https://github.com/facebook/jest/issues/242

wesentlichen Änderungen, die Sie verwenden müssen, da es ein Eingang ist, sondern auch in den zusätzlichen Daten übergeben.

var FrequencyFormInstance = ReactTestUtils.findRenderedComponentWithType(rootElement, FrequencyForm); 
var frequencyNode = ReactDom.findDOMNode(FrequencyFormInstance); 

var oneOfTheRadioButton = frequencyNode.children[1].children[2]; 

ReactTestUtils.Simulate.change(checkbox.getDOMNode(), {"target": {"checked": true}}); 
Verwandte Themen