2017-02-02 8 views
0

So scheint es, dass durch den Aufruf $('#input').val('[email protected]').change(), löst es nicht die React-Eingang onChange Ereignis.Wie triggern onChange mit Casperjs und Reagieren?

Aber das ist wirklich notwendig für so etwas wie CasperJS für Integrationstests (Ausfüllen eines Formulars und Einreichen, etc.).

Also wie geht das? Ich war nicht in der Lage, eine Lösung online zu finden oder indem ich verschiedene Dinge im Browser ausprobierte und den React Devtools-Wert des Zustands betrachtete.

Hier sind einige verwandte Links, die nicht besonders hilfreich sind. Why jQuery.val(value) does not dispatch any event from the DOM element?

+0

Dies könnte zu dieser [Antwort] duplizieren (http://stackoverflow.com/questions/35353482/testing-react-apps-with-phantom-casper). – Dan

+0

Die Frage, die beantwortet werden muss, ist _Can CasperJS und PhantomJS finden React-Komponenten in React visual dom? _ Oder gibt es ein Test-Framework, das besser für React-Apps geeignet ist? – Dan

+0

Die Screenshots funktionieren ganz gut. Aber die jQuery von '$ ('input'). Val ('something'). Change()' löst * nicht * das 'onChange'-Ereignis von React aus. Umgehung: Verwenden Sie den Status für Texteingabewerte nicht. –

Antwort

0

Also, um den Test zu aktivieren, habe ich die Eingabe von der Kontrolle zu einer normalen HTML-Eingabe geändert. Für die Funktion onSubmit verwende ich einen ref, um den Eingangswert zu finden. Konnte keinen Weg finden, onChange programmgesteuert auszulösen.