Angenommen, ich habe diese Komponente:
%Vor%Wie gehe ich vor, um 1 Klick auf "Touchable WithoutFeedback" zu simulieren und sicherzustellen, dass "myCoolFunction" genau einmal aufgerufen wurde?
Wenn es kein Muss ist, würde ich lieber keine weiteren Abhängigkeiten als 'react-dom' und 'react-addons-test-utils' hinzufügen.
Ich habe viele Guides gesehen, die dies und das behaupten, aber ich fürchte, sie sind veraltet und ich möchte sicher sein, dass ich nicht einige unnötige Workarounds durchhalte und meinen Code aufblähen muss.
Ich habe jest / react / react nativ in ihren neuesten Versionen.
Edit: In Jests offizieller Dokumentation heißt es, dass DOM-Tests sein können entweder mit Enzyme oder den TestUtils . Wie kann ich dies mit den TestUtils erreichen?
Ich weiß, dass Sie keine anderen Abhängigkeiten hinzufügen möchten, aber es gibt eine Funktion in der Unterstrich Bibliothek namens once
Erstellt eine Version der Funktion, die nur einmal aufgerufen werden kann. Wiederholte Aufrufe der geänderten Funktion haben keine Auswirkungen und geben den Wert des ursprünglichen Aufrufs zurück.
Auf diese Weise werden Sie sicher sein, dass es einmal aufgerufen wurde.
Ich weiß, dass sich diese Antwort nicht an Ihre Anforderung anpasst, keine zusätzlichen Abhängigkeiten zu verwenden, aber ich denke, das können Sie nicht nur mit Jest und Enzyme tun. Jest bietet Ihnen den Runner, Assertion-Funktionen und Snapshot-Tests und Enzyme führt alle DOM-Manipulationen und Event-Simulationen durch. Um jedoch zu wissen, dass Ihre Funktion genau einmal aufgerufen wurde, benötigen Sie etwas anderes (d. H. Einen Spion). Wir verwenden sinon
dafür, wie folgt:
Tags und Links testing react-native reactjs jestjs