Ich habe eine React Component, die die shouldComponentUpdate Methode implementiert und ich möchte Einheit testen. Im Idealfall könnte ich in einem Komponententest einige Props oder Zustände auf der Komponente ändern und überprüfen, ob sie entweder neu gerendert wurden oder nicht. Ich benutze enzyme, wenn das hilft.Wie Komponententest React Component sollteComponentUpdate Methode
Antwort
Ich würde wahrscheinlich einfach sollteComponentUpdate direkt aufrufen.
So etwas wie
const comp = shallow(<Comp {...props} />)
const shouldUpdate = comp.instance().shouldComponentUpdate(nextProps, nextState)
expect(shouldUpdate).toBe(true/false)
durch die Bestimmung zu testen, versuchen herauszufinden, ob die Komponente tatsächlich erbrachten/render nicht wahrscheinlich mehr Mühe, als es wert ist; Ich bin mir nicht einmal sicher, wie du das mit Enzymen machen würdest. Sie können die gerenderte Ausgabe nicht wirklich verlassen, da Sie wahrscheinlich von falseComponentUpdate nicht false zurückgeben würden, es sei denn, die gerenderte Ausgabe wäre die gleiche wie zuvor. Das Bestimmen, ob ein Rendering stattgefunden hat oder nicht, kann nicht allein durch die Ausgabe erfolgen.
Testen durch direktes Anrufen scheint mir aber in Ordnung. Solange Sie vertrauen, dass React den Rückgabewert von shouldComponentUpdate korrekt verwendet (wir haben größere Probleme, wenn dies nicht der Fall ist), ist es sicher.
Ich denke, Sie sollten nichts für Komponententests machen und deshalb brauchen Sie kein Enzym für Komponententests.
Ein schnelles Testbeispiel für Ihren Fall.
const classContext = {
props: {},
state: {}
};
const nextProps = {};
const nextState = {};
const shouldUpdate = yourComponent.prototype.shouldComponentUpdate.call(classContext, nextProps, nextState);
expect(shouldUpdate).toBe(true/false)
- 1. Überschreiben einer React Component-Methode
- 2. Asynchrone fire ein sollteComponentUpdate?
- 3. Warum reagiert React automatisch nicht auf sollteComponentUpdate?
- 4. Construct React Component von einem React Element
- 5. Idiomatische Implementierung von sollteComponentUpdate?
- 6. Alphabetical Navigation React Component
- 7. React Component Render
- 8. Append react component
- 9. Zugriff auf Component-Methode von außerhalb der React App
- 10. React Component - Plotly Chart Creator
- 11. Render React Component zu Fancybox
- 12. Wie navigiere ich zwischen React-native Component?
- 13. Wie zu testen React Component Klassenmethoden
- 14. Wie Sie Listenelemente in React Component
- 15. Bessere Alternative zu sollteComponentUpdate
- 16. Standalone React Component mit Webpack
- 17. BrowserWindow in React Component importieren
- 18. React Component Bestücken Item Component Requisiten aus Json Daten
- 19. Komponententest $ window resize-Methode
- 20. 'Funktion' ist nicht definiert in React Component
- 21. So importieren/erfordern vorhandene Non-React-Native-Component JS zu einer React Native Component
- 22. Einstellung bedingte onclick Verhalten in React Component
- 23. Übergeben Sie Style-Array zu React Component
- 24. Gradient Text Component mit React Native
- 25. Zugriff auf Statuswerte in React Component
- 26. Ändern Sie borderColor in React Component
- 27. React Component Abstimmung nach oben und unten
- 28. Nicht-Komponente Onclick-Trigger React Component Update
- 29. Component-basierte React-Redux-Projekt Verzeichnisstruktur
- 30. React/Meteor Component nicht richtig Requisiten
Ich denke nicht, wovon Sie sprechen, ist ein Komponententest, ist es? Im Idealfall sollten Sie 'sollteComponentUpdate' isolieren können. – speckledcarp