Testovacie komponenty v aplikáciách React sú rozhodujúcou súčasťou vývojového procesu, čím sa zabezpečuje, že každá časť aplikácie funguje podľa očakávania. Pri riešení react.Lazy, čo umožňuje rozdelenie kódu a lenivé načítanie komponentov, testovanie sa môže stať o niečo náročnejšie. Ako dodávateľ enzýmov som sa stretol s mnohými scenármi, v ktorých vývojári zápasia s testovacími komponentmi pomocou React.Lazy. V tomto blogu sa podelím o niekoľko efektívnych stratégií na testovanie komponentov pomocou React.Lazy in React pomocou enzýmu.
Pochopenie react.lazy a rozdelenia kódu
Pred potápaním sa do testovania je nevyhnutné pochopiť, čo react.Lazy robí. React.Lazy je funkcia, ktorá vám umožňuje vykresliť dynamický import ako bežný komponent. Je to užitočné najmä pre rozdelenie kódu, čo pomáha znižovať počiatočnú veľkosť zväzku vašej aplikácie načítaním komponentov iba vtedy, keď sú potrebné.
const leazyComponent = react.lazy (() => import ('./ LazyComponent')); funkcia app () {return (<div> <react.susPense faltback = {<div> Loading ... </div>}> <lezyComponent/> </react.susPense> </div>); }
Vo vyššie uvedenom kóde,Lenivý komponentje lenivo naložený aReact.suspensesa používa na zobrazenie používateľského rozhrania UI pri načítaní komponentu.
Nastavenie testovacieho prostredia
Ak chcete testovať komponenty pomocou react.Lazy pomocou enzýmu, musíte mať správne testovacie prostredie. Najprv sa uistite, že máte nainštalované potrebné závislosti. Budete potrebovať React, Enzým a Jest (alebo iný testovací rámec).
inštalácia NPM-SAVE-DEV ENZYME ENZYME-ADAPTER-REACT-16 JEST
Ďalej nakonfigurujte enzým na prácu s verziou React. Vytvoriť asetUpsts.jsSúbor v koreňovom adresári vášho projektu a pridajte nasledujúci kód:
importovaný enzým z „enzýmov“; Importný adaptér z „enzýmovej adaptéry-react-16“; Enzyme.configure ({adapter: new adapter ()});
Testovacie komponenty pomocou react.Lazy
Pri testovaní komponentov s React.Lazy, je potrebné mať na pamäti niekoľko vecí. Pretože lenivé komponenty sú načítané asynchrónne, musíte v testoch zvládnuť asynchrónnu povahu procesu načítania.
Testovanie používateľského rozhrania
Prvá vec, ktorú môžete otestovať, je UI Fallback. Keď sa načítava lenivý komponent, malo by sa zobraziť používateľské rozhranie UI.
Import reagovať z „reagovať“; import {mount} z 'enzýmov'; Importovať aplikáciu z './app'; opis ('app', () => {it ('by mal vykresliť UI UI, zatiaľ čo lenivý komponent sa načítava', () => {const wrapper = mount (<pp />); očakávať (wrapper.find ('div'). Text ()).
V tomto teste namontujemeAplikáciaKomponent a skontrolujte, či sa zobrazuje používateľské rozhranie UI.
Testovanie lenivého komponentu
Ak chcete otestovať samotnú zložku lenivého zaťaženia, musíte počkať, kým sa načíta. Jedným zo spôsobov, ako to dosiahnuť, je použitiekonaniez testovacích nástrojov React.
Import reagovať z „reagovať“; import {mount} z 'enzýmov'; import {act} z 'react-dom/test-utils'; Importovať aplikáciu z './app'; opis ('app', () => {it ('by mal vykresliť lenivý komponent po jeho načítaní', async () => {lete wrapper; acat act (async () => {wrapper = mount (<pp />);}); capper.update (); očakávať (crapper.Find ('‘});
V tomto teste používamekonaniena zabalenie montážeAplikáciakomponent. To zaisťuje, že všetky aktualizácie stavu a vedľajšie účinky sú dokončené skôr, ako skontrolujeme, či je komponent Lazy zaťažený.
Chyby manipulácie pri lenivom načítaní
Ďalším dôležitým aspektom testovania je spracovanie chýb pri lenivom zaťažení. Ak dôjde k chybe pri načítaní lenivého komponentu,React.suspensemalo by to zvládnuť elegantne.
Import reagovať z „reagovať“; import {mount} z 'enzýmov'; import {act} z 'react-dom/test-utils'; Importovať aplikáciu z './app'; opis ('app', () => {it ('by mal zvládnuť chybu v lenivom zaťažení', async () => {const Mockerror = new Error ('zlyhanie načítania komponentu'); jest.spyon (react, 'lezy'). MockImplementation ((() => {{hrow Mockerror;}); lete wrapper; });
V tomto teste používameje. SpyonzosmiešniťReact.lazyFunkciu a vyhoďte chybu. Potom skontrolujeme, či je zobrazené používateľské rozhranie chyby.
Použitie funkcií Enzyme na testovanie
Enzým poskytuje niekoľko funkcií, ktoré môžu byť užitočné na testovanie komponentov pomocou React.Lazy. Napríklad môžete použiťsimulovaťspustiť udalosti na komponentoch.
Import reagovať z „reagovať“; import {mount} z 'enzýmov'; import {act} z 'react-dom/test-utils'; Importovať aplikáciu z './app'; opis ('app', () => {it ('by mal zvládnuť udalosť kliknutia na lenivej komponente', async () => {lete wrapper; acat acit (async () => {wrapper = mount (<pp />);}); crapper.update (); const leazyComponent =; Očakávajte (LazyComponent.state ('Click').
V tomto teste simulujeme udalosť kliknutia na lenivej komponente a skontrolujeme, či je stav komponentu podľa toho aktualizovaný.
Záver
Testovacie komponenty s react.Lazy in React pomocou enzýmu vyžaduje starostlivé zaobchádzanie s asynchrónnou povahou lenivého zaťaženia. Dodržiavaním stratégií uvedených v tomto blogu môžete efektívne otestovať svoje komponenty a zabezpečiť, aby vaša aplikácia fungovala podľa očakávania.
Ak máte záujem preskúmať viac produktov súvisiacich s enzýmom, ponúkame celý rad vysoko kvalitných enzýmových výrobkov, ktoré môžu vylepšiť váš vývojový proces. Možno vás bude zaujímať aj o naše ďalšie bylinné výňatky, ako napríkladFibroin rozpustný vo vode,Vysokokvalitný ricínový olej z potravinového stupňa/100% ricínový olejaVysoko kvalitný sušený prášok semien okra/okra.
Ak máte akékoľvek otázky alebo by ste chceli diskutovať o svojich konkrétnych potrebách, neváhajte a oslovte nás na diskusiu o obstarávaní. Sme tu, aby sme vám pomohli nájsť najlepšie riešenia pre vaše projekty.
Odkazy
- React Oficiálna dokumentácia o rozdelení kódu: https://reactjs.org/docs/code-slittting.html
- Oficiálna dokumentácia o enzýme: https://enzymiejs.github.io/enzyme/
- Oficiálna dokumentácia Jest: https://jestjs.io/