Angenommen habe ich diese Komponente:Testing Bauteilverhalten (click) in React-Mutter mit Jest
import React, { Component } from 'react';
import { Text, TouchableWithoutFeedback, View } from 'react-native';
class MyComp extends Component {
onRowPress() {
this.myCoolFunction();
}
myCoolFunction() {
console.log('hi');
}
render() {
return (
<TouchableWithoutFeedback onPress={this.onRowPress.bind(this)}>
<View>
<Text>Hello World</Text>
</View>
</TouchableWithoutFeedback>
);
}
}
export default MyComp;
Wie gehe ich über die Simulation von 1 Klick auf den ‚TouchableWithoutFeedback‘ und dafür sorgen, dass ‚myCoolFunction‘ genannt wurde genau 1 mal?
Wenn es kein Muss ist, dann würde ich es vorziehen, nicht mehr Abhängigkeiten andere als ‚reagieren-dom‘ und ‚reagieren-addons-Test-utils‘ hinzuzufügen.
Ich habe viele Guides gesehen, die behaupten, dies und das zu sein, aber ich fürchte, sie sind veraltet und ich möchte sicher sein, dass ich keine unnötigen Workarounds durchhalte und meinen Code aufgebläht habe.
Ich habe Scherz/reagieren/reagieren nativer in ihren neuesten Versionen.
Edit: In Jest's official documentation heißt es, dass DOM-Tests entweder mit Enzym oder TestUtils durchgeführt werden können. Wie kann ich dies mit den TestUtils erreichen?
Werfen Sie einen Blick auf diese [Tutorial] (https://facebook.github.io/jest/docs/tutorial-react.html) von React Seite. Was Sie testen sollten, ist der Zustand der Komponente, wie von Facebook vorgeschlagen, nicht wenn onClick ausgeführt wurde. Nun, wenn Sie nach dem Klicken auf die Schaltfläche erwarten, dass eine andere Komponente aufgerufen wird, sollten Sie diese Komponente vortäuschen. –
Wie Sie sehen können, manipuliert mein onClick den Zustand nicht. Auch dies sind Reaktionstests, so dass es einfacher ist, auf das DOM zuzugreifen. – Tsury