Testiranje rekvizita komponenti je ključni aspekt osiguravanja pouzdanosti i funkcionalnosti React komponenti. Kao dobavljač enzima, razumijem važnost obezbjeđivanja efikasnih alata i tehnika za testiranje React aplikacija. U ovom blog postu, podijelit ću vrijedne uvide o tome kako testirati komponente komponenti pomoću Enzymea, popularnog uslužnog programa za testiranje JavaScripta za React.
Razumevanje enzima
Enzyme je uslužni program za testiranje JavaScripta koji je razvio Airbnb. Pruža skup uslužnih programa za testiranje koji olakšavaju testiranje React komponenti. Enzim vam omogućava da manipulišete, prelazite i ispitujete izlaz vaših React komponenti na način koji je sličan jQueryju. Podržava različite načine prikazivanja, kao što je plitko renderiranje, potpuno DOM renderiranje i statičko renderiranje, što vam daje fleksibilnost u testiranju vaših komponenti.
Postavljanje okruženja za testiranje
Prije nego počnete testirati rekvizite komponenti sa Enzymeom, morate postaviti svoje okruženje za testiranje. Evo koraka za početak:
- Instalirajte Enzyme i njegove adaptere: Enzim i njegove adaptere možete instalirati koristeći npm ili yarn. Na primjer, ako koristite React 16, morat ćete ga instalirati
enzimienzim-adapter-reaguje-16.
npm install --save-dev enzyme enzyme-adapter-react-16
- Konfigurišite adapter: U datoteci za podešavanje testa, konfigurišite Enzimski adapter. Evo primjera:
import Enzyme from 'enzyme'; import Adapter iz 'enzyme-adapter-react-16'; Enzyme.configure({ adapter: novi adapter() });
Testiranje komponentnih rekvizita s plitkim renderiranjem
Plitko renderovanje je tehnika koja vam omogućava da renderujete komponentu "duboko jedan nivo" bez renderovanja nijednog od njenih potomaka. Ovo je korisno za testiranje pojedinačnih komponenti u izolaciji. Evo primjera kako testirati rekvizite komponenti koristeći plitko renderiranje:
import React from'react'; import { plitko } iz 'enzima'; import MyComponent iz './MyComponent'; describe('MyComponent', () => { it('treba renderirati s ispravnim props', () => { const props = { title: 'Test Title', description: 'Opis testa' }; const wrapper = plitko(<MyComponent {...props} />); expect(wrapper.proptoBetitle('T);est Title'); expect(wrapper.prop('description')).toBe('Opis testa'); }); });
U ovom primjeru, kreiramo objekat sa rekvizitima koje želimo prosleditiMyComponent. Zatim koristimoplitkoza renderiranje komponente sa ovim rekvizitima. Konačno, koristimopropmetoda za pristup rekvizitima i davanje tvrdnji o njihovim vrijednostima.


Testiranje tipova rekvizita
Tipovi rekvizita su način da se dokumentuju i nametnu tipovi rekvizita koje komponenta očekuje. Možete koristiti Enzyme da testirate da li komponenta ispravno rukuje tipovima rekvizita. Evo primjera:
import React from'react'; import PropTypes iz 'prop-types'; import { plitko } iz 'enzima'; const MyComponent = ({ title }) => ( <div>{title}</div> ); MyComponent.propTypes = { title: PropTypes.string.isRequired }; describe('MyComponent', () => { it('trebalo bi dati upozorenje za nedostajući prop', () => { console.error = jest.fn(); plitko(<MyComponent />); expect(console.error).toHaveBeenCalled(); }); });
U ovom primjeru koristimois.fn()da špijuniraconsole.errormetoda. Zatim renderiramo komponentu bez prolaska potrebnenaslovprop. Ako provjera tipa propa ne uspije, upozorenje će biti zabilježeno na konzoli, a naš test će proći akoconsole.errormetoda je pozvana.
Testiranje rekvizita s punim DOM renderiranjem
Potpuno DOM prikazivanje je korisno kada trebate testirati interakciju između komponente i njene djece ili kada trebate testirati ponašanje komponente u realističnijem okruženju. Evo primjera kako testirati rekvizite komponenti koristeći potpuno DOM renderiranje:
import React from'react'; import { mount } iz 'enzima'; import MyComponent iz './MyComponent'; describe('MyComponent', () => { it('trebalo bi renderirati s ispravnim props koristeći kompletno DOM renderiranje', () => { const props = { title: 'Test Title', description: 'Opis testa' }; const wrapper = mount(<MyComponent {...props} />); expectto(BetiTip');prop('BetiTip'); expect(wrapper.prop('description')).toBe('Opis testa'); }); });
U ovom primjeru koristimomountmetoda umjestoplitko. Themountmetoda pretvara komponentu i njene potomke u pravi DOM, što nam omogućava da testiramo ponašanje komponente u realističnijem okruženju.
Testiranje rekvizita sa statičkim renderiranjem
Statičko prikazivanje je korisno kada samo trebate generirati HTML izlaz komponente bez da je montirate u DOM. Evo primjera kako testirati rekvizite komponenti pomoću statičkog renderiranja:
import React from'react'; import { render } iz 'enzima'; import MyComponent iz './MyComponent'; describe('MyComponent', () => { it('treba renderirati sa ispravnim propsima koristeći statičko renderiranje', () => { const props = { title: 'Test Title', description: 'Opis testa' }; const wrapper = render(<MyComponent {...props} />); expect('hrapper Tibeto Betext).'); očekivati(wrapper.find('p').text()).toBe('Opis testa'); }); });
U ovom primjeru koristimorendermetoda za generiranje HTML izlaza komponente. Zatim možemo koristiti selektore slične jQueryju da bismo upitali izlaz i dali tvrdnje o propsima.
Realne aplikacije i srodni proizvodi
U stvarnom svijetu, testiranje komponentnih rekvizita je ključno za izgradnju visokokvalitetnih React aplikacija. U našoj kompaniji ne samo da nudimo Enzime, već nudimo i niz srodnih proizvoda koji mogu poboljšati vaš proces razvoja i testiranja. Na primjer, imamonikotinamid mononukleotid, koji ima potencijalne zdravstvene prednosti i može se koristiti u različitim aplikacijama. Također nudimoTvornička nabavka organskog sušenog avokada u prahu, prirodan i hranljiv sastojak. A za industrijske primjene imamoVisokokvalitetno terpentinsko ulje/terpentinsko ulje Tvornička cijena/mineralno terpentinsko ulje, koji se široko koristi u prerađivačkoj industriji.
Zaključak
Testiranje komponentnih rekvizita pomoću Enzyma je neophodna vještina za React programere. Korištenjem plitkog renderiranja, potpunog DOM renderiranja i statičkog renderiranja, možete testirati svoje komponente u različitim scenarijima i osigurati da rade kako se očekuje. Bilo da ste početnik ili iskusan programer, savladavanje ovih tehnika pomoći će vam da izgradite pouzdanije i održivije React aplikacije.
Ako ste zainteresirani za kupovinu Enzyma ili nekog od naših drugih proizvoda, slobodno nas kontaktirajte za raspravu o nabavci. Posvećeni smo pružanju visokokvalitetnih proizvoda i odlične usluge kupcima.
Reference
- Airbnb. (nd). Enzim - JavaScript programi za testiranje za React. Preuzeto sa https://enzymejs.github.io/enzyme/
- Reaguj. (nd). React - JavaScript biblioteka za izgradnju korisničkih interfejsa. Preuzeto sa https://reactjs.org/
- Jest. (nd). Jest - Divno JavaScript testiranje. Preuzeto sa https://jestjs.io/