Hogyan lehet tesztelni a komponenseket a react.strictMode -val a React enzim használatával?

May 21, 2025

Hagyjon üzenetet

Michael Brown
Michael Brown
Növénybiológus, amely a kiwifrit termesztésre szakosodott. A kiwi ültetvényeknek szentelt egymillió hektárral a szerepem a növekedési feltételek optimalizálását és a legjobb tápanyagok kinyerését a porok számára.

Az összetevők tesztelése a React -ben a fejlesztési folyamat kulcsfontosságú része, biztosítva, hogy az alkalmazás a várt módon működjön, és stabil marad, ahogy fejlődik. A React.StrictMode egy értékes eszköz, amely segít azonosítani az összetevők potenciális problémáit a fejlesztés során. Ebben a blogbejegyzésben, mint enzimszállító, végigvezeti Önt a komponensek tesztelésének folyamatán a React.StrictMode -val enzim segítségével.

A React.StrictMode megértése

A React.StrictMode egy React által biztosított burkolóelem, amely további ellenőrzéseket és figyelmeztetéseket aktivál az leszármazottainak. Nem tesz látható UI -t; Ehelyett segít megtalálni az összetevők általános hibáit és potenciális problémáit. Amikor az alkalmazás egy részét a React.StrictMode -val csomagolja, a React extra ellenőrzéseket végez, például a régi életciklus -módszerek észlelését, figyelmeztetve a nem megfelelő használatra a nem megfelelő használatraaz USSStateésUserEducerhorgok és a váratlan mellékhatások azonosítása.

az import reagáljon a 'React' -ből; const app = () => {return (<react.strictMode> {/ * az összetevők itt menjenek */} </ReAct.StrictMode>); }; Exportálási alapértelmezett alkalmazás;

Miért használja az enzimet a teszteléshez?

Az enzim egy JavaScript tesztelési segédprogram a React számára, amely megkönnyíti a React komponensek kimenetének tesztelését. Ez egy sor módszert biztosít a React komponensek virtuális DOM -jának manipulálására, áthaladására és lekérdezésére. Az enzim segítségével szimulálhatja a felhasználói interakciókat, a tesztkomponens állapotát és ellenőrizheti a megjelenített kimenetet. Enzimszállítóként igazolhatom annak rugalmasságát és könnyű használatát, ami népszerű választást jelent a React fejlesztők körében a teszteléshez.

A tesztelési környezet beállítása

Mielőtt elkezdené az összetevők tesztelését a React.StrictMode -val enzim használatával, be kell állítania a tesztelési környezetet. Először telepítenie kell a szükséges csomagokat. Ha NPM -t használ, akkor a következő parancsokat futtathatja:

NPM Install-Save-DEV enzim enzim-adapter-React-16 React-Test-Test-Teverer

Itt,enzima tesztelési segédprogram,enzim-adapter-react-16a reagálás 16 -as adaptere (lehet, hogy a verziót a React verziója szerint be kell állítania), ésreakt-tesztelő-rendezvényarra használják, hogy a komponenseket a tiszta JavaScript objektumokhoz való reagáláshoz használják.

Ezután konfigurálnia kell az enzimet az adapter használatához. Ezt megteheti például egy beállítási fájlban,setuptests.js:

Enzim importálása az „enzimből”; importálási adapter az „enzim-adapter-react-16” -ból; Enzim.configure ({adapter: új adapter ()});

Tesztelések írása a react.strictMode -val és az enzimmel

Tegyük fel, hogy van egy egyszerű React komponensedGombEz egy gombnyomással egy gombot eredményez.

az import reagáljon a 'React' -ből; const gomb = ({text}) => {return <gomb> {text} </gomb>; }; Exportálási alapértelmezett gomb;

Most írjunk egy tesztet erre az összetevőre enzim és react.strictMode segítségével.

az import reagáljon a 'React' -ből; Import {sekély} az 'enzimből'; Importálás gomb a './button' -ból; Írja le ('gombkomponens', () => {it ('meg kell adnia a helyes szöveget', () => {const text = 'kattintson rám'; const Wrapper = sekély (<react.strictMode> <gomb text = {text} /> </react.strictMode>); const gomb = wrapper.find ('gomb');

Ebben a tesztben asekélymegjelenítési módszer az enzimtől aGombBekerült alkatrészReact.StrictMode- Ezután megtaláljuk agombelem aleletmódszer és ellenőrizze, hogy a gomb belsejében lévő szöveg megfelel -e aszövegprop átmentünk.

Az alkatrész állapotának tesztelése

Az enzim lehetővé teszi az összetevő állapotának változásainak tesztelését is. Tegyük fel, hogy van egy elnevezésű összetevőjeEllenEnnek egy állapotváltozója vanszámításés egy gomb a szám növeléséhez.

Import React, {useState} a 'React' -ből; const számláló = () => {const [count, setCount] = useState (0); const tinomrement = () => {setCount (count + 1); }; return (<div> <p> szám: {count} </p> <gomb onClick = {növekedés}> tőzsde </blub> </div>); }; Exportálási alapértelmezett számláló;

Így tesztelheti az állapotváltozást ebben az összetevőben:

az import reagáljon a 'React' -ből; Import {Mount} az 'enzimből'; importszámláló a './counter' -ből; Írja le ('Counter Component', () => {it ('' meg kell növelnie a számot, amikor a gombra kattintva van ', () => {const Wrapper = tartó (<react.strictMode> <számláló /> </react.strictMode>); const gomb = wrapper.find (' gomb '); const kezdeti count = parseint (wrapper.find (' p '). Text (). Button.

Ebben a tesztben ahegymódszer az enzimtől aEllenBekerült alkatrészReact.StrictMode- Ezután megtaláljuk a gombot, megkapjuk a kezdeti számot, szimuláljuk a gombra kattintást, és ellenőrizzük, hogy a szám növekszik -e.

Komponens életciklus -módszerek tesztelése

React.StrictMode segíthet a régi életciklus -módszerek észlelésében az összetevőkben. Tegyük fel, hogy van egy örökséggel rendelkező összetevőjeComponentWillreivePropsmódszer.

Import React, {komponens} a 'React' -ből; osztály LegacyComponent kiterjeszti a {componentWillreeVeProps (nextProps) komponenst {// s néhány logika itt} render () {return <div> {this.props.text} </div>; }} exportálási alapértelmezett LegacyComponent;

Amikor ezt az összetevőt a React.StrictMode segítségével teszteli, a React figyelmeztetést fog adni a Legacy LifeCycle módszer használatáról.

az import reagáljon a 'React' -ből; Import {sekély} az 'enzimből'; Import LegacyComponent a './legaycomponent' -ből; Írja le a ('LegacyComponent', () => {it ('helyesen kell megjelenítenie', () => {const text = 'hello'; const Wrapper = sekély (<reage.strictMode> <lecyComponent text = {text} /> </react.strictMode>); várható (wrapper.find ('div'). Text (szöveg).

Ez a figyelmeztetés segít azonosítani és frissíteni az összetevőket az új életciklus -módszerek vagy horgok használatához.

Asclepius Supply High Quality Psicose Powder /d Psicose PowderMedium Chain Triglycerides

Horgok tesztelése

Ha az összetevő horgokat használ, a react.strictMode segíthet a lehetséges problémák észlelésében is. Tegyük fel például, hogy van egy egyedi horogja, amely az API -ból származó adatokat gyűjt.

Import React, {useState, useFect} a 'React' -ből; const useFetch = (url) => {const [data, setData] = felhasználás (null); const [betöltés, setloading] = felhasználás (igaz); useFect (() => {const fetchData = async () => {próbáld {const response = várja a Fetch (url); const json = várja a response.json (); setData (json);} catch (hiba) {console.error (hiba); return {adatok, betöltés}; }; const dataFetcher = ({url}) => {const {data, betöltés} = useFetch (url); if (betöltés) {return <p> betöltés ... </p>; } return <pre> {json.Stringify (data, null, 2)} </pre>; }; Exportálási alapértelmezett dataFetcher;

Így tesztelheti ezt az összetevőt:

az import reagáljon a 'React' -ből; Import {Mount} az 'enzimből'; Import DataFetcher './DataFetcher' -ből; Írja le ('DataFetcher komponens', () => {it ('kezdetben be kell töltenie a szöveget', () => {const url = 'https://example.com/api/data'; const Wrapper = Mount (<React.strictMode> <dataFetcher url = {url}/> </react.strictMode>); várj (Wrapper.find ('P'). szöveg ()).

React.StrictMode biztosítja afelhasználáshorog auseFetchAz egyéni horgot helyesen hívják, és hogy nincsenek váratlan mellékhatások.

Következtetés

Az összetevők tesztelése a react.strictMode -val enzim használatával hatékony módszer a React alkalmazások minőségének és stabilitásának biztosítására. A React.StrictMode segít azonosítani a lehetséges problémákat a fejlesztési folyamat elején, míg az enzim hatékony eszközkészletet biztosít az alkatrészek teszteléséhez. Enzimszállítóként arra bátorítom, hogy beépítse ezeket a tesztelési gyakorlatokat a fejlesztési munkafolyamatba.

Ha érdekli a kiváló minőségű enzimtermékek vagy más kapcsolódó kellékek, akkor számos terméket kínálunk, példáulAsclepius ellátás kiváló minőségű psicose por /d psicose por,Természetes foszfatidil -szerin 70%, porított foszfatidilszerin, ésKözepes láncú trigliceridek- Ha bármilyen kérdése van, vagy szeretne megvitatni a potenciális vásárlást, kérjük, ne habozzon, vegye fel velünk a kapcsolatot további részletekért és indítsa el a beszerzési tárgyalásokat.

Referenciák

  • React dokumentáció: https://reactjs.org/docs/strict-mode.html
  • Enzimdokumentáció: https://enzymejs.github.io/enzyme/
A szálláslekérdezés elküldése