So schreibe ich einige Tests für Code, der ein Klickereignis auf dem Dokument hinzufügt. Ich verwende JSDom, ReactJS und Mocha/Chai Setup. Ich habe den folgenden Code in einem Test ausprobiert:Simulieren klicken auf Dokument ReactJS/JSDom
document.addEventListener('click', function() {
console.log('test');
});
React.addons.TestUtils.Simulate.click(document);
//also tried React.addons.TestUtils.Simulate.click(document.body);
jedoch erzeugt dieser Code nicht das Echo, das ich erwarte.
Gibt es eine Möglichkeit, Klick, Keyup, etc ... auf dem Dokument mit JSDom und ReactJS zu simulieren?
UPDATE
Um Nick Antworten, ich habe versucht, diesen Code zum Test hinzufügen:
document.body.addEventListener('click', function() {
console.log('test');
});
document.body.click();
und ich bis nicht die Konsole Protokollausgabe erhalten. Ich bin mir nicht sicher, ob es ein Problem mit JSDom gibt und so etwas macht.
Wenn ich diesen Code nicht testen kann, ist das in Ordnung, es gibt bereits Code, den ich momentan nicht testen kann (Code, der ein echtes DOM benötigt, um Breiten, Höhen usw. zu erhalten). .), aber ich würde gerne in der Lage sein, den größten Teil des Codes zu testen (und ich bin nicht daran interessiert, PhantomJS für Komponententests zu verwenden). Meine Integrationstests werden diese Art von Code abdecken.
UPDATE2
andere Sache zu beachten ist, dass das ist, wenn ich console.log(document);
ich Objekt sehen an der _listeners
Eigenschaft für click
so weiß ich das Ereignis angebracht wird, es scheint einfach nicht zu sein Ausführen.
Haben Sie versucht, die gleiche Sache in einem aktuellen Browser? Hat es funktioniert? – Louis
Ja, der Code im Browser funktioniert gut – ryanzec