Wie om / React Komponenten richtig (Einheit) testen?

8

Ich habe Om / React-Komponenten entwickelt, aber ich fühle mich sehr unwohl dabei, meine Entwicklung nicht mit Komponententests voranzutreiben. Ich habe versucht, mein clojurescript-Projekt einzurichten, um Komponententests für diese Komponenten auszuführen, und habe den Punkt erreicht, an dem ich Komponententests schreiben und meine Komponenten instanziieren kann. Was ich vermisse, ist die Fähigkeit sicherzustellen, dass meine Komponenten auf bestimmte Ereignisse, z. onChange , damit ich Benutzereingaben simulieren kann.

Hier ist mein Testcode:

%Vor%

Dieser Test wird ausgeführt, schlägt jedoch fehl, da die Funktion change-field! den Status der Komponente nicht tatsächlich ändert. Hier ist (Teil von) der Code der Komponente (Verzeihen Duplikation ...):

%Vor%

Was ich durch das Einfügen von Ablaufverfolgungen in die Tests sehen kann, ist, dass der Status der Komponente nicht aktualisiert wird, wenn ich das Ereignis change auslöst, obwohl es korrekt ausgelöst wurde. Ich vermute, dass dies mit der Art und Weise zu tun hat, wie Om / React arbeitet und DOM-Komponenten umhüllt, aber nicht sicher ist, wie damit umzugehen ist.

    
insitu 06.10.2014, 05:31
quelle

1 Antwort

1

Sie können Ereignisse in Ihren Komponenten mithilfe von ReactTestUtils aus den react-Bibliotheken nachahmen. Ich verwende Mocha und mache so etwas, um Änderungsereignisse zu testen:

%Vor%     
user874639 07.05.2015 22:23
quelle