Komponente ispitivanja u React aplikacijama ključni su dio procesa razvoja, osiguravajući da svaki dio aplikacije funkcionira kako se očekivalo. Kada se bavite React.lazy, što omogućava cijepanje koda i lijeno učitavanje komponenti, testiranje može postati malo izazovnije. Kao dobavljač enzima, naišao sam na brojne scenarije u kojima se programeri bore s komponentama za testiranje pomoću React.lazy. U ovom ću blogu podijeliti neke učinkovite strategije za testiranje komponenti s react.lazy u reakciji pomoću enzima.
Razumijevanje react.lazy i cijepanje koda
Prije nego što se zaronite u testiranje, ključno je razumjeti što React.lazy radi. React.lazy je funkcija koja vam omogućuje da postavite dinamičan uvoz kao običnu komponentu. To je posebno korisno za cijepanje koda, što pomaže smanjiti početnu veličinu paketa vaše aplikacije učitavanjem komponenti samo kad su potrebne.
const lazyComponent = react.lazy (() => uvoz ('./ lazycomponent')); Function App () {return (<Iv> <react.susPense fellback = {<Iv> Učitavanje ... </vi div>}> <lijenaComponent/> </react.susPense> </IV>); }
U gornjem kodu,Lijena kompanijaje utovaren lijeno, iReact.suspensekoristi se za prikaz povratnog korisničkog sučelja dok se komponenta učitava.
Postavljanje okruženja za testiranje
Da biste testirali komponente s react.lazy pomoću enzima, trebate postavljati odgovarajuće okruženje za testiranje. Prvo provjerite imate li potrebne ovisnosti. Trebat će vam React, Enzim i Jest (ili drugi okvir za testiranje).
NPM instalacija--save-dev enzim enzim-adapter-react-16
Zatim konfigurirajte enzim za rad s vašom verzijom React. Stvoriti asettests.jsdatoteku u korijenskom direktoriju vašeg projekta i dodajte sljedeći kôd:
uvozni enzim iz 'enzima'; uvozni adapter iz 'enzim-adapter-react-16'; Enzim.configure ({adapter: novi adapter ()});
Komponente za testiranje s react.lazy
Prilikom testiranja komponenti s react.lazy, ima na umu nekoliko stvari. Budući da su komponente s lijenim napunjenim asinkronom, morate nositi asinhronu prirodu procesa utovara u vašim testovima.
Testiranje povratnog sučelja
Prvo što možete testirati je povratni sučelje. Kada se učitava komponenta lijene napunjene, treba prikazati povratni sučelje.
uvoz reakcije iz 'react'; uvoz {mount} iz 'enzima'; Uvoz aplikacije iz './app'; Opišite ('App', () => {it ('treba učiniti povratni sučelje, dok se lijena komponenta učitava', () => {const wrapper = mount (<app />); očekivati (omodper.find ('div'). text ()). tobe ('učitavanje ...');});});
U ovom testu montiramoAplikacijaKomponenta i provjerite je li prikazano povratno korisničko sučelje.
Testiranje komponente s lijenim natopljenom
Da biste testirali sama komponentu s lijenom, morate pričekati da se učita. Jedan od načina da to učinite je upotrebomčinitiod Reactovih uslužnih programa za testiranje.
uvoz reakcije iz 'react'; uvoz {mount} iz 'enzima'; uvoz {act} iz 'react-dom/test-utils'; Uvoz aplikacije iz './app'; Opišite ('App', () => {it ('treba učiniti lijenu komponentu nakon što je učitana', async () => {neka omot; čeka akt (async () => {wrapper = mount (<app />);}); omot.
U ovom testu koristimočinitiZamotati montiranjeAplikacijakomponenta. To osigurava da su sva ažuriranja i nuspojave stanja završena prije nego što provjerimo je li komponenta lijena.
Pogreške u lijenom opterećenju
Drugi važan aspekt testiranja je postupanje s pogreškama u lijenom opterećenju. Ako dođe do pogreške prilikom učitavanja komponente s lijenim natovarenom,React.suspenseTrebao bi se nositi s graciozno.
uvoz reakcije iz 'react'; uvoz {mount} iz 'enzima'; uvoz {act} iz 'react-dom/test-utils'; Uvoz aplikacije iz './app'; Opišite ('App', () => {it ('treba podnijeti pogrešku u lijenom učitavanju', async () => {const mockerror = nova pogreška ('nije uspjela učitati komponentu'); jst.spyon (react, 'lijen'). Mockimplementacija (() => {AppAit;}; /) omot;
U ovom testu koristimoje. Špijunismijavati seReact.lazyfunkcija i bacite pogrešku. Zatim provjeravamo prikazuje li se korisničko sučelje za rukovanje pogreškama.
Korištenje značajki enzima za testiranje
Enzim pruža nekoliko značajki koje mogu biti korisne za testiranje komponenti s react.lazy. Na primjer, možete koristitisimuliratiPokrenuti događaje na komponentama.
uvoz reakcije iz 'react'; uvoz {mount} iz 'enzima'; uvoz {act} iz 'react-dom/test-utils'; Uvoz aplikacije iz './app'; Opišite ('App', () => {it ('Treba postupati s klikom na lijenu komponentu', async () => {neka omotač; čekaju ACT (async () => {wrapper = mount (<app />);}); omotper.update (); const lamycomponent ('); Očekivano (lijenicomPonent.State ('klikne'). Tobe (istina);
U ovom testu simuliramo događaj klika na komponentu s lijenim natovarenom i provjerimo je li stanje komponente u skladu s tim ažurirano.
Zaključak
Komponente ispitivanja s React.Lzy u reakciji pomoću enzima zahtijeva pažljivo rukovanje asinhronom prirodom lijenog opterećenja. Slijedeći strategije navedene na ovom blogu, možete učinkovito testirati svoje komponente i osigurati funkcioniranje vaše aplikacije kako se očekuje.
Ako ste zainteresirani za istraživanje više proizvoda povezanih s enzimom, nudimo niz visokokvalitetnih enzimskih proizvoda koji mogu poboljšati vaš razvojni proces. Možda će vas zanimati i naši drugi biljni ekstrakti poputVodeni svileni fibroin,,Visokokvalitetno ulje od ricinusa/100% ricinusovog ulja za hranu/100%, iVisokokvalitetni sušeni okraj u prahu/okraj ekstrakt sjemena prah.
Ako imate bilo kakvih pitanja ili želite razgovarati o svojim specifičnim potrebama, slobodno nam se obratite za raspravu o nabavi. Tu smo da vam pomognemo pronaći najbolja rješenja za svoje projekte.
Reference
- React Službena dokumentacija o cijepanju koda: https://reactjs.org/docs/code-splitting.html
- Enzim Službena dokumentacija: https://enzymejs.github.io/enzyme/
- Jest Službena dokumentacija: https://jestjs.io/