Testarea elementelor de recuzită pentru componente este un aspect crucial al asigurării fiabilității și funcționalității componentelor React. În calitate de furnizor de enzime, înțeleg importanța furnizării de instrumente și tehnici eficiente pentru testarea aplicațiilor React. În această postare pe blog, voi împărtăși informații valoroase despre cum să testați elementele de recuzită ale componentelor cu Enzyme, un utilitar popular de testare JavaScript pentru React.
Înțelegerea enzimei
Enzyme este un utilitar de testare JavaScript dezvoltat de Airbnb. Oferă un set de utilități de testare care facilitează testarea componentelor React. Enzyme vă permite să manipulați, să traversați și să interogați rezultatul componentelor React într-un mod similar cu jQuery. Acceptă diferite moduri de randare, cum ar fi randarea superficială, redarea completă DOM și randarea statică, ceea ce vă oferă flexibilitate în testarea componentelor.
Configurarea mediului de testare
Înainte de a începe să testați elementele de recuzită pentru componente cu Enzyme, trebuie să vă configurați mediul de testare. Iată pașii pentru a începe:
- Instalați Enzyme și adaptoarele sale: Puteți instala Enzyme și adaptoarele sale folosind npm sau fire. De exemplu, dacă utilizați React 16, va trebui să instalați
enzimăşiadaptor-enzima-reactie-16.
npm install --save-dev enzyme enzyme-adapter-react-16
- Configurați adaptorul: În fișierul de configurare a testului, configurați adaptorul Enzyme. Iată un exemplu:
import Enzyme din „enzimă”; import Adapter de la „enzima-adapter-react-16”; Enzyme.configure({ adaptor: adaptor nou() });
Testarea elementelor de recuzită a componentelor cu randare superficială
Redarea superficială este o tehnică care vă permite să randați o componentă „un nivel adânc” fără a randa niciunul dintre copiii ei. Acest lucru este util pentru testarea componentelor individuale în mod izolat. Iată un exemplu despre cum să testați elementele de recuzită ale componentelor folosind randarea superficială:
import React from'react'; import { superficial } din „enzimă”; import MyComponent din './MyComponent'; descrie('MyComponent', () => { it('ar trebui să se redeze cu elemente de recuzită corecte', () => { const props = { title: 'Titlul testului', descriere: 'Descrierea testului' }; const wrapper = shallow(<MyComponent {...props} />); expect(wrapper.prop('title')).toBe('Test Title'); expect(wrapper.prop('descriere')).toBe('Descrierea testului'); }); });
În acest exemplu, creăm un obiect cu elementele de recuzită pe care vrem să le transmitemMyComponent. Folosim apoisuperficialpentru a reda componenta cu aceste recuzite. În cele din urmă, folosimpropmetodă de a accesa recuzita și de a face afirmații despre valorile acestora.


Testarea tipurilor de accesorii
Tipurile de recuzită sunt o modalitate de a documenta și de a aplica tipurile de elemente de recuzită pe care le așteaptă o componentă. Puteți utiliza Enzyme pentru a testa dacă o componentă manipulează corect tipurile de prop. Iată un exemplu:
import React from'react'; import PropTypes din 'prop-types'; import { superficial } din „enzimă”; const MyComponent = ({ title }) => ( <div>{title}</div> ); MyComponent.propTypes = { titlu: PropTypes.string.isRequired }; descrie('MyComponent', () => { it('ar trebui să arunce un avertisment pentru lipsă prop', () => { console.error = jest.fn(); shallow(<MyComponent />); expect(console.error).toHaveBeenCalled(); }); });
În acest exemplu, folosimis.fn()a spiona peconsolă.eroaremetodă. Redăm apoi componenta fără a trece pe cel ceruttitluprop. Dacă validarea tipului de prop nu reușește, un avertisment va fi înregistrat în consolă și testul nostru va trece dacăconsola.eroaremetoda a fost numită.
Testarea elementelor de recuzită cu redare DOM completă
Redarea DOM completă este utilă atunci când trebuie să testați interacțiunea dintre o componentă și copiii acesteia sau când trebuie să testați comportamentul componentei într-un mediu mai realist. Iată un exemplu despre cum să testați elementele de recuzită ale componentelor folosind redarea DOM completă:
import React from'react'; import { mount } din 'enzimă'; import MyComponent din './MyComponent'; descrie('MyComponent', () => { it('ar trebui să se redeze cu elementele corecte folosind redarea DOM completă', () => { const props = { title: 'Titlul testului', descriere: 'Descrierea testului' }; const wrapper = mount(<MyComponent {...props} />); expect(wrapper.prop('title')).toBe'); expect(wrapper.prop('descriere')).toBe('Descrierea testului'); }); });
În acest exemplu, folosimmuntemetoda in loc desuperficial. Themuntemetoda redă componenta și copiii săi într-un DOM real, ceea ce ne permite să testăm comportamentul componentei într-un mediu mai realist.
Testarea elementelor de recuzită cu randare statică
Redarea statică este utilă atunci când trebuie doar să generați rezultatul HTML al unei componente fără a o monta în DOM. Iată un exemplu despre cum să testați elementele de recuzită ale componentelor folosind randarea statică:
import React from'react'; import { render } din 'enzimă'; import MyComponent din './MyComponent'; describe('MyComponent', () => { it('ar trebui să se redeze cu elementele de recuzită corecte folosind randarea statică', () => { const props = { title: 'Titlul testului', descriere: 'Descrierea testului' }; const wrapper = render(<MyComponent {...props} />); expect(wrapper.find('h1');'text(T)). expect(wrapper.find('p').text()).toBe('Descrierea testului'); }); });
În acest exemplu, folosimfacemetoda de a genera ieșirea HTML a componentei. Apoi putem folosi selectoare asemănătoare jQuery pentru a interoga rezultatul și a face afirmații despre elemente de recuzită.
Aplicații din lumea reală și produse conexe
În lumea reală, testarea elementelor de recuzită pentru componente este esențială pentru construirea de aplicații React de înaltă calitate. La compania noastră, nu numai că oferim Enzyme, ci și o gamă de produse conexe care vă pot îmbunătăți procesul de dezvoltare și testare. De exemplu, avemNicotinamidă mononucleotidă, care are potențiale beneficii pentru sănătate și poate fi folosit în diverse aplicații. Oferim si noiAprovizionare din fabrică Pudră organică de avocado uscat, un ingredient natural și nutritiv. Și pentru aplicații industriale, avemUlei de terebentină de înaltă calitate/ulei de terebentină Preț de fabrică/ulei mineral de terebentină, care este utilizat pe scară largă în industria prelucrătoare.
Concluzie
Testarea elementelor de recuzită pentru componente cu Enzyme este o abilitate esențială pentru dezvoltatorii React. Folosind randarea superficială, redarea completă DOM și randarea statică, vă puteți testa componentele în diferite scenarii și vă puteți asigura că funcționează conform așteptărilor. Indiferent dacă sunteți un începător sau un dezvoltator experimentat, stăpânirea acestor tehnici vă va ajuta să construiți aplicații React mai fiabile și mai ușor de întreținut.
Dacă sunteți interesat să cumpărați Enzyme sau oricare dintre celelalte produse ale noastre, vă rugăm să nu ezitați să ne contactați pentru o discuție privind achizițiile. Ne angajăm să oferim produse de înaltă calitate și servicii excelente pentru clienți.
Referințe
- Airbnb. (nd). Enzyme - Utilitare de testare JavaScript pentru React. Preluat de pe https://enzymejs.github.io/enzyme/
- Reacţiona. (nd). React - O bibliotecă JavaScript pentru construirea de interfețe cu utilizatorul. Preluat de pe https://reactjs.org/
- Glumă. (nd). Jest - Testare JavaScript încântătoare. Preluat de pe https://jestjs.io/