Cum se testează modalele în componentele React cu Enzyme?

Jan 21, 2026

Lăsaţi un mesaj

Dr. Emily Carter
Dr. Emily Carter
În calitate de director al cercetării alimentare de sănătate la ASCLEPIUS, conduc echipa noastră în dezvoltarea pulberilor de extract de plante de ultimă oră. Cu peste un deceniu de experiență în chimia produsului natural, sunt pasionat de crearea de soluții inovatoare care valorifică puterea naturii.

Bună, colegi dezvoltatori React! Dacă lucrați cu componente React și aveți de-a face cu modali, știți cât de dificil poate fi să le testați corect. Acesta este locul în care Enzyme este foarte util. Și ghici ce? Sunt un furnizor de Enzyme, așa că am câteva informații grozave de împărtășit cu dvs. despre cum să testați modal în componentele React folosind Enzyme.

În primul rând, să înțelegem rapid ce este Enzyme. Enzyme este un utilitar de testare JavaScript pentru React, care facilitează afirmarea, manipularea și parcurgerea rezultatelor componentelor React. Oferă o mulțime de metode utile pentru a testa componentele React într-un mod mai intuitiv. Când vine vorba de modal în React, vrem să ne asigurăm că se deschid și se închid corect, că conținutul din interior este afișat așa cum era de așteptat și că orice interacțiune cu modal funcționează conform intenției.

Configurarea proiectului

Înainte de a începe testarea modalelor, trebuie să aveți configurat Enzyme în proiectul dvs. Dacă nu ați făcut-o deja, îl puteți instala folosind npm sau yarn. Doar rulați următoarea comandă în terminalul dvs.:

npm install --save-dev enzyme enzyme-adapter-react-16

Aceasta va instala Enzyme și adaptorul pentru React 16. Dacă utilizați o versiune diferită de React, asigurați-vă că instalați adaptorul corespunzător.

După ce ați instalat Enzyme, trebuie să o configurați în fișierul de configurare de testare. Iată un exemplu despre cum puteți face acest lucru:

import Enzyme din „enzimă”; import Adapter de la „enzima-adapter-react-16”; Enzyme.configure({ adaptor: adaptor nou() });

Testarea vizibilității modale

Unul dintre primele lucruri pe care vrem să le testăm când vine vorba de modale este vizibilitatea acestora. Un modal ar trebui să se deschidă atunci când este declanșată o anumită acțiune, cum ar fi clic pe un buton. Să presupunem că avem o componentă React simplă cu un buton care deschide un modal:

import React, { useState } din 'react'; const ModalComponent = () => { const [isModalOpen, setIsModalOpen] = useState(false); const openModal = () => { setIsModalOpen(true); }; return ( <div> <button onClick={openModal}>Modal deschis</button> {isModalOpen && <div className="modal">Acesta este un modal</div>} </div> ); }; export implicit ModalComponent;

Pentru a testa dacă modalul se deschide atunci când se face clic pe butonul, putem folosi Enzyme'ssuperficialmetoda de randare. Iată codul de testare:

import React din 'react'; import { superficial } din „enzimă”; import ModalComponent din './ModalComponent'; describe('ModalComponent', () => { it('ar trebui să deschidă modalul când se face clic pe butonul', () => { const wrapper = superficial(<ModalComponent />); const button = wrapper.find('button'); button.simulate('click'); expect(wrapper.find('.modal').});(true());});(true());).

În acest test, mai întâi redăm superficialComponentă modală. Apoi găsim butonul folosindwrapper.find('button')și simulați un eveniment de clic pe acesta. În cele din urmă, verificăm dacă elementul modal cu clasacapitalexistă în ieșirea componentei.

Testarea conținutului modal

Odată ce am testat vizibilitatea modalului, este posibil să dorim și să testăm conținutul din interiorul modalului. De exemplu, dacă modalul afișează unele date dinamice, vrem să ne asigurăm că este redat corect. Să ne actualizămComponentă modalăpentru a afișa câteva date dinamice:

import React, { useState } din 'react'; const ModalComponent = () => { const [isModalOpen, setIsModalOpen] = useState(false); const [modalData, setModalData] = useState('Unele date inițiale'); const openModal = () => { setIsModalOpen(true); }; return ( <div> <button onClick={openModal}>Open Modal</button> {isModalOpen && <div className="modal">{modalData}</div>} </div> ); }; export implicit ModalComponent;

Acum, să scriem un test pentru a verifica dacă conținutul modal este corect:

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

import React din 'react'; import { superficial } din „enzimă”; import ModalComponent din './ModalComponent'; describe('ModalComponent', () => { it('ar trebui să afișeze conținutul modal corect', () => { const wrapper = superficial(<ModalComponent />); const button = wrapper.find('button'); button.simulate('click'); expect(wrapper.find('.modal').text()).toBe');');

În acest test, vom urma un proces similar ca înainte. Redăm componenta superficial, facem clic pe butonul pentru a deschide modulul și apoi verificăm dacă textul din interiorul modalului este egal cu datele așteptate.

Testarea închiderii modale

La fel ca la testarea deschiderii modalului, trebuie să testăm și funcționalitatea de închidere a acestuia. Să adăugăm un buton de închidereComponentă modală:

import React, { useState } din 'react'; const ModalComponent = () => { const [isModalOpen, setIsModalOpen] = useState(false); const [modalData, setModalData] = useState('Unele date inițiale'); const openModal = () => { setIsModalOpen(true); }; const closeModal = () => { setIsModalOpen(false); }; return ( <div> <button onClick={openModal}>Deschide modal</button> {isModalOpen && ( <div className="modal"> {modalData} <button onClick={closeModal}>Închide modal</button> </div> )} </div> ); }; export implicit ModalComponent;

Acum, să scriem un test pentru a verifica dacă modalul se închide atunci când se face clic pe butonul de închidere:

import React din 'react'; import { superficial } din „enzimă”; import ModalComponent din './ModalComponent'; descrie('ModalComponent', () => { it('ar trebui să închidă modalul când se face clic pe butonul de închidere', () => { const wrapper = superficial(<ModalComponent />); const openButton = wrapper.find('button').first(); openButton.simulate('click'); const closeButton =('mod.modalfind =);'. closeButton.simulate('click'); wait(wrapper.find('.modal').exists());

În acest test, deschidem mai întâi modulul făcând clic pe butonul de deschidere. Apoi găsim butonul de închidere în interiorul modalului și simulăm un eveniment de clic pe acesta. În cele din urmă, verificăm dacă elementul modal nu mai există în ieșirea componentei.

Testare modală mai complexă

Uneori, modalile pot fi mai complexe, cu mai multe stări și interacțiuni. De exemplu, un modal ar putea avea un formular în interiorul său și trebuie să testăm dacă trimiterea formularului funcționează corect. Să adăugăm un formular simplu în formularul nostruComponentă modală:

import React, { useState } din 'react'; const ModalComponent = () => { const [isModalOpen, setIsModalOpen] = useState(false); const [modalData, setModalData] = useState('Unele date inițiale'); 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) /> <button(e.target). type="submit">Trimite</button> </form> <button onClick={closeModal}>Închidere modal</button> </div> )} </div> ); }; export implicit ModalComponent;

Acum, să scriem un test pentru a verifica dacă trimiterea formularului actualizează datele modale și închide modulul:

import React din 'react'; import { superficial } din „enzimă”; import ModalComponent din './ModalComponent'; descrie('ModalComponent', () => { it('ar trebui să actualizeze datele modale și să închidă modalul la trimiterea formularului', () => { const wrapper = superficial (<ModalComponent />); const openButton = wrapper.find('button').first(); openButton.simulate('click'); const input =('wrapper.'changer:'); { value: 'New data' } }); const form = wrapper.find('form.simulate', { preventDefault: () => {} }) ;

În acest test, deschidem mai întâi modulul, apoi simulăm un eveniment de modificare în câmpul de intrare pentru a actualiza datele formularului. Apoi, simulăm un eveniment de trimitere a formularului și verificăm dacă modalul este închis și datele modale sunt actualizate corect.

Concluzie

Testarea modalelor în componentele React cu Enzyme poate părea puțin descurajantă la început, dar odată ce înțelegi, devine ușor. Urmând pașii și exemplele pe care i-am împărtășit aici, ar trebui să puteți testa modalele în mod eficient și să vă asigurați că funcționează conform așteptărilor.

Dacă sunteți în căutarea unor produse Enzyme de înaltă calitate pentru nevoile dvs. de testare, nu ezitațicontactaţi-nepentru mai multe informații. Suntem aici pentru a vă ajuta să vă faceți procesul de testare cât mai ușor posibil.

Și dacă sunteți interesat de alte produse, consultați aceste link-uri:

Referințe

  • Documentația enzimelor
  • React Testarea documentației bibliotecii
  • Reactează documentația oficială
Trimite anchetă