Wie testet man Modals in React-Komponenten mit Enzyme?

Jan 21, 2026

Eine Nachricht hinterlassen

Dr. Emily Carter
Dr. Emily Carter
Als Director of Health Food Research bei Asclepius führe ich unser Team bei der Entwicklung modernster Pulver aus dem Pflanzenextrakt. Mit über einem Jahrzehnt Erfahrung in der Naturproduktchemie bin ich leidenschaftlich daran, innovative Lösungen zu schaffen, die die Kraft der Natur nutzen.

Hallo, liebe React-Entwickler! Wenn Sie mit React-Komponenten arbeiten und sich mit Modalen befassen, wissen Sie, wie schwierig es sein kann, sie richtig zu testen. Hier kommt Enzyme zum Einsatz. Und wissen Sie was? Ich bin ein Enzyme-Lieferant und kann Ihnen daher einige großartige Erkenntnisse zum Testen von Modalitäten in React-Komponenten mithilfe von Enzyme mitteilen.

Lassen Sie uns zunächst schnell verstehen, was Enzym ist. Enzyme ist ein JavaScript-Testdienstprogramm für React, das es einfacher macht, die Ausgabe Ihrer React-Komponenten zu bestätigen, zu manipulieren und zu durchlaufen. Es bietet eine Reihe hilfreicher Methoden, um React-Komponenten intuitiver zu testen. Wenn es um Modals in React geht, möchten wir sicherstellen, dass sie sich korrekt öffnen und schließen, dass der darin enthaltene Inhalt wie erwartet angezeigt wird und dass alle Interaktionen mit dem Modal wie beabsichtigt funktionieren.

Einrichten Ihres Projekts

Bevor wir mit dem Testen von Modalitäten beginnen, müssen Sie Enzyme in Ihrem Projekt einrichten. Wenn Sie es noch nicht getan haben, können Sie es mit npm oder Yarn installieren. Führen Sie einfach den folgenden Befehl in Ihrem Terminal aus:

npm install --save-dev Enzym Enzym-Adapter-React-16

Dadurch werden Enzyme und der Adapter für React 16 installiert. Wenn Sie eine andere Version von React verwenden, stellen Sie sicher, dass Sie den entsprechenden Adapter installieren.

Sobald Sie Enzyme installiert haben, müssen Sie es in Ihrer Test-Setup-Datei konfigurieren. Hier ist ein Beispiel, wie Sie es tun können:

Enzym aus „Enzym“ importieren; Adapter aus „enzyme-adapter-react-16“ importieren; Enzyme.configure({ adapter: new Adapter() });

Modale Sichtbarkeit testen

Eines der ersten Dinge, die wir bei Modalitäten testen wollen, ist ihre Sichtbarkeit. Ein Modal sollte geöffnet werden, wenn eine bestimmte Aktion ausgelöst wird, beispielsweise das Klicken auf eine Schaltfläche. Nehmen wir an, wir haben eine einfache React-Komponente mit einer Schaltfläche, die ein Modal öffnet:

import React, { useState } from 'react'; const ModalComponent = () => { const [isModalOpen, setIsModalOpen] = useState(false); const openModal = () => { setIsModalOpen(true); }; return ( <div> <button onClick={openModal}>Open Modal</button> {isModalOpen && <div className="modal">This is a modal</div>} </div> ); }; Standard-ModalComponent exportieren;

Um zu testen, ob das Modal geöffnet wird, wenn auf die Schaltfläche geklickt wird, können wir Enzyme verwendenseichtRendering-Methode. Hier ist der Testcode:

import React aus 'react'; import { flach } aus 'Enzym'; ModalComponent aus './ModalComponent' importieren; beschreiben('ModalComponent', () => { it('sollte das Modal öffnen, wenn auf die Schaltfläche geklickt wird', () => { const wrapper = flach(<ModalComponent />); const button = wrapper.find('button'); button.simulate('click'); Expect(wrapper.find('.modal').exists()).toBe(true); }); });

In diesem Test rendern wir zunächst flachModalComponent. Dann finden wir den Button mitwrapper.find('button')und simulieren Sie ein Klickereignis darauf. Abschließend prüfen wir, ob das modale Element mit der Klasse übereinstimmtHauptstadtexistiert in der Ausgabe der Komponente.

Modalen Inhalt testen

Nachdem wir die Sichtbarkeit des Modals getestet haben, möchten wir möglicherweise auch den Inhalt im Modal testen. Wenn das Modal beispielsweise dynamische Daten anzeigt, möchten wir sicherstellen, dass diese korrekt gerendert werden. Lassen Sie uns unsere aktualisierenModalComponentum einige dynamische Daten anzuzeigen:

import React, { useState } from 'react'; const ModalComponent = () => { const [isModalOpen, setIsModalOpen] = useState(false); const [modalData, setModalData] = useState('Einige Anfangsdaten'); const openModal = () => { setIsModalOpen(true); }; return ( <div> <button onClick={openModal}>Open Modal</button> {isModalOpen && <div className="modal">{modalData}</div>} </div> ); }; Standard-ModalComponent exportieren;

Schreiben wir nun einen Test, um zu überprüfen, ob der modale Inhalt korrekt ist:

Squalene Oil/ Squalene 1000mg Soft CapsulesCherry Juice Powder,cherry Extract Powder Supplier Wholesale

import React aus 'react'; import { flach } aus 'Enzym'; ModalComponent aus './ModalComponent' importieren; beschreiben('ModalComponent', () => { it('sollte den korrekten modalen Inhalt anzeigen', () => { const wrapper = flach(<ModalComponent />); const button = wrapper.find('button'); button.simulate('click'); Expect(wrapper.find('.modal').text()).toBe('Einige Anfangsdaten'); }); });

In diesem Test folgen wir einem ähnlichen Prozess wie zuvor. Wir rendern die Komponente flach, klicken auf die Schaltfläche, um das Modal zu öffnen, und prüfen dann, ob der Text im Modal den erwarteten Daten entspricht.

Testen des modalen Schließens

Genauso wie wir das Öffnen des Modals testen, müssen wir auch seine Schließfunktion testen. Fügen wir unserem eine Schließen-Schaltfläche hinzuModalComponent:

import React, { useState } from 'react'; const ModalComponent = () => { const [isModalOpen, setIsModalOpen] = useState(false); const [modalData, setModalData] = useState('Einige Anfangsdaten'); const openModal = () => { setIsModalOpen(true); }; const closeModal = () => { setIsModalOpen(false); }; return ( <div> <button onClick={openModal}>Open Modal</button> {isModalOpen && ( <div className="modal"> {modalData} <button onClick={closeModal}>Close Modal</button> </div> )} </div> ); }; Standard-ModalComponent exportieren;

Schreiben wir nun einen Test, um zu überprüfen, ob das Modal geschlossen wird, wenn auf die Schaltfläche „Schließen“ geklickt wird:

import React aus 'react'; import { flach } aus 'Enzym'; ModalComponent aus './ModalComponent' importieren; beschreiben('ModalComponent', () => { it('sollte das Modal schließen, wenn auf die Schaltfläche zum Schließen geklickt wird', () => { const wrapper = flach(<ModalComponent />); const openButton = wrapper.find('button').first(); openButton.simulate('click'); const closeButton = wrapper.find('.modal button'); closeButton.simulate('click'); erwarten(wrapper.find('.modal').exists()).toBe(false });

In diesem Test öffnen wir zunächst das Modal, indem wir auf die Schaltfläche „Öffnen“ klicken. Dann finden wir die Schaltfläche „Schließen“ im Modal und simulieren darauf ein Klickereignis. Abschließend prüfen wir, ob das modale Element in der Ausgabe der Komponente nicht mehr vorhanden ist.

Komplexere Modaltests

Manchmal können Modalitäten komplexer sein und mehrere Zustände und Interaktionen aufweisen. Ein Modal könnte beispielsweise ein Formular enthalten und wir müssen testen, ob die Formularübermittlung ordnungsgemäß funktioniert. Fügen wir unserem ein einfaches Formular hinzuModalComponent:

import React, { useState } from 'react'; const ModalComponent = () => { const [isModalOpen, setIsModalOpen] = useState(false); const [modalData, setModalData] = useState('Einige Anfangsdaten'); const [formData, setFormData] = useState(''); const openModal = () => { setIsModalOpen(true); }; const closeModal = () => { setIsModalOpen(false); }; const handleSubmit = (e) => { e.preventDefault(); setModalData(formData); closeModal(); }; return ( <div> <button onClick={openModal}>Open Modal</button> {isModalOpen && ( <div className="modal"> <form onSubmit={handleSubmit}> <input type="text" value={formData} onChange={(e) => setFormData(e.target.value)} /> <button type="submit">Submit</button> </form> <button onClick={closeModal}>Modal schließen</button> </div> )} </div> ); }; Standard-ModalComponent exportieren;

Schreiben wir nun einen Test, um zu prüfen, ob die Formularübermittlung die Modaldaten aktualisiert und das Modal schließt:

import React aus 'react'; import { flach } aus 'Enzym'; ModalComponent aus './ModalComponent' importieren; beschreiben('ModalComponent', () => { it('sollte Modaldaten aktualisieren und das Modal bei der Formularübermittlung schließen', () => { const wrapper = flach(<ModalComponent />); const openButton = wrapper.find('button').first(); openButton.simulate('click'); const input = wrapper.find('input'); input.simulate('change', { target: { value: 'New data' } }); const form = wrapper.find('form'); form.simulate('submit', { discoverDefault: () => {} }); Expect(wrapper.find('.modal').toBe('New data');

In diesem Test öffnen wir zunächst das Modal und simulieren dann ein Änderungsereignis im Eingabefeld, um die Formulardaten zu aktualisieren. Als nächstes simulieren wir ein Formularübermittlungsereignis und prüfen, ob das Modal geschlossen ist und die Modaldaten korrekt aktualisiert werden.

Abschluss

Das Testen von Modalitäten in React-Komponenten mit Enzyme kann zunächst etwas entmutigend erscheinen, aber sobald Sie den Dreh raus haben, wird es zum Kinderspiel. Indem Sie die Schritte und Beispiele befolgen, die ich hier geteilt habe, sollten Sie in der Lage sein, Ihre Modalitäten effektiv zu testen und sicherzustellen, dass sie wie erwartet funktionieren.

Wenn Sie auf der Suche nach hochwertigen Enzymprodukten für Ihre Testanforderungen sind, zögern Sie nichtKontaktieren Sie unsfür weitere Informationen. Wir sind hier, um Ihnen dabei zu helfen, Ihren Testprozess so reibungslos wie möglich zu gestalten.

Und wenn Sie an anderen Produkten interessiert sind, schauen Sie sich diese Links an:

Referenzen

  • Enzymdokumentation
  • Dokumentation der React Testing-Bibliothek
  • Reagieren Sie auf die offizielle Dokumentation
Anfrage senden