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.

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/