Hé! Hooks beszállítójaként már jó ideje vagyok a játékban, és tudom, mennyire fontos a horgok megfelelő tesztelése. A kampók tesztelésének egyik legfontosabb szempontja a hatékony gúnyolódás. Tehát merüljünk be abban, ami szerintem a legjobb módja annak, hogy a kampók gúnyolódjanak a tesztekben.
Miért gúnyolódik a horgok a tesztekben?
Először is, miért is szükségünk van a horgok gúnyolására? Nos, a horgok gyakran kölcsönhatásba lépnek a külső erőforrásokkal, például az API -kkal, az adatbázisokkal vagy a böngészőbe épített funkciókba. Amikor egységteszteket írunk, szeretnénk elkülöníteni az általunk tesztelt összetevőt vagy funkciót. A horgok gúnyolódása lehetővé teszi ezen horgok bemenetének és kimenetének vezérlését, a tesztek megbízhatóbbá és gyorsabbá tétele érdekében.
Például, ha olyan egyedi horogot használ, amely az API -ból származó adatokat gyűjt, akkor nem akarja támaszkodni a tényleges API -ra, hogy elérhető legyen, és a teszt során a következetes adatokat adja vissza. Ehelyett gúnyolhatja a horgot, hogy visszaadja az előre meghatározott adatkészletet.
Különböző módok a horgok gúnyolására
1. kézi gúnyolás
A horgok gúnyolódásának egyik legegyszerűbb módja az, hogy manuálisan végezzük el. Tegyük fel, hogy van egy egyedi horogja, amelyet hívnakuseFetchDataEz néhány adatot gyűjt egy API -ból.
// useFetchData.js Import {useFect, Usestate} a 'React' -ből; const useFetchData = () => {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 meg a Fetch ('https://example.com/api/data'); const eredmény = várja a response.json (); setData (eredmény); setloading (hamis); fetchData (); return {adatok, betöltés}; }; Export alapértelmezett useFetchData;
Ahhoz, hogy ezt a horogot manuálisan gúnyolhassa egy tesztbe, létrehozhat egy modell megvalósítást.
// __mocks __/ekefetchData.js const useFetchData = () => {return {data: {üzenet: 'gúnyolt adatok'}, betöltés: hamis}; }; Export alapértelmezett useFetchData;
A tesztfájlban használhatja ezt a modellt.
az import reagáljon a 'React' -ből; Import {render, képernyő} a '@tesztelési-könyvtár/react' -ből; Import ComponentThatusesFetchData './ComponentThatHusesFetchData' -ból; jest.mock ('./ oateFetchData'); Írja le ('ComponentThatusesFetchData', () => {it ('Mocked Data -nak kell megjelenítenie', () => {render (<componentThatusesFetchData />); const DataElement = screen.getByText ('gúnyos adatok'); várható (DataLement) .Tobeintocument ();});
A kézi gúnyolódás teljes ellenőrzést biztosít a modell megvalósítása felett. Megváltoztathatja a visszatérési értékeket a különböző tesztforgatókönyvek alapján. Ez azonban egy kicsit idő lehet - fogyasztó, különösen, ha sok horg van a gúnyolódáshoz.
2. Jest automatikus gúnyolódása használata
A Jestnek van egy olyan funkciója, ahol automatikusan képes modelleket létrehozni az Ön számára. Ha van egy horgja egy fájlban, akkor a JEST létrehozhat egy horog modell verzióját valamilyen alapértelmezett viselkedéssel.
Például, ha van egy egyszerű horogja, mintusecounter:
// usecounter.js importál {useState} a 'React' -ből; const usecounter = () => {const [count, setCount] = szexuális (0); const tinomrement = () => setCount (Count + 1); return {gróf, növekedés}; }; Export alapértelmezett USECounter;
A teszt során használhatja a Jest automatikus gúnyolódását.
az import reagáljon a 'React' -ből; Import {render, képernyő} a '@tesztelési-könyvtár/react' -ből; Import ComponentThatusescounter a './componentThatusescounter' -ből; jest.mock ('./ Usecounter'); Írja le ('ComponentTHUtHusScounter', () => {it ('' Használnia kell a gúnyos pultot ', () => {render (<componentThatusescounter />); // További testreszabhat itt, ha szükséges // Például, ha a komponens hívások növekedése, akkor ellenőrizheti a modell viselkedését});
A Jest automatikus gúnyolódásának előnye, hogy gyors és egyszerűen beállítható. De lehet, hogy nem olyan rugalmas, mint a kézi gúnyolódás, különösen akkor, ha nagyon specifikus modell viselkedésre van szüksége.
3. A React tesztelési könyvtár és a React Hooks tesztelési könyvtár használata
A React Hooks tesztelő könyvtár nagyszerű eszköz a horgok tesztelésére. Segédprogramokat biztosít a horgok megjelenítéséhez és viselkedésük teszteléséhez.
Tegyük fel, hogy van egy horogja, amely kiszámítja a két szám összegét:
// itsum.js import {useState} a 'React' -ből; const othum = (a, b) => {const [sum, setsum] = felhasználás (a + b); visszatérési összeg; }; Exportálási alapértelmezett felhasználás;
A React Hooks tesztelési könyvtár segítségével tesztelheti ezt a horgot, és szükség esetén gúnyolódhat minden függőségre.
Import {rendhook} a '@tesztelési-könyvtár/react-hooks' -ból; Import useum a './usesum' -ból; írja le ('ounhum', () => {it ('az összeget helyesen kell kiszámítani', () => {const {eredmény} = RenderHook (() => useum (2, 3)); várható (eredmény.current) .tobe (5);});});
Ha a horognak van néhány külső függősége, akkor ugyanazokat a kézi vagy gúnyolódást használhatja, hogy kezelje őket.
A horgok gúnyolására szolgáló bevált gyakorlatok
- Tartsa egyszerűen a gúnyokat: A modelleknek a lehető legegyszerűbbnek kell lenniük. Csak azt a viselkedést kell utánozniuk, amelyre a tesztre van szüksége. Túl - A bonyolító gúnyok megnehezíthetik a teszteket, hogy megértsék és karbantartják.
- Különböző forgatókönyvek tesztelése: Ügyeljen arra, hogy a különféle forgatókönyveket tesztelje a modell adatok megváltoztatásával. Például, ha a horogjának különböző állapotai vannak, mint például a betöltés, a siker és a hiba, akkor tesztelje ezeket az állapotokat különböző modell értékek visszaadásával.
- Külön aggodalmak: Tartsa a gúnyolódást külön a termelési kódtól. Ez megkönnyíti azok kezelését és frissítését, amikor a kódbázis fejlődik.
Valódi - világ alkalmazások a Hooks üzletünkben
Hooks -beszállítóként különféle horgok vannak, példáulIpari erőhorgokamelyeket nehéz szolgálatban használnak. Amikor szoftvert fejlesztünk a készletünk kezelésére, a megrendelések nyomon követésére vagy a termékinformációk megjelenítésére, a Hooks -ot használjuk a React alkalmazásokban.
Ezen horgok tesztelése elengedhetetlen annak biztosítása érdekében, hogy szoftverünk megfelelően működjön. Például, ha van egy olyan horogunk, amely az ipari erősségű horgok készletét egy adatbázisból lekéri, akkor ezt a horgot gúnyolhatjuk a tesztjeinkben, hogy elkerüljük a tényleges adatbázisban való támaszkodást.
Vannak olyan termékeink is, mintVastag racsnis hevederek nehéz felszerelésekhezés1 hüvelykes műanyag bütykös csat- Szoftverünk horgokat használhat a szállítási költségek kiszámításához, a termék részleteinek megjelenítéséhez vagy az ügyfelek megrendeléseinek kezeléséhez. Ezeknek a horgoknak a gúnyolódása segít megbízható és gyors tesztek írásában.
Következtetés és cselekvésre ösztönzés
A horgok gúnyolódása nélkülözhetetlen része a React alkalmazások tesztelésének. A megfelelő technikák, például a kézi gúnyolás, a Jest automatikus gúnyolódása vagy a React Hooks tesztelési könyvtár felhasználásával biztosíthatja, hogy a horgok a várt módon működjenek.
Ha a magas színvonalú horgok piacán van, akár ipari szilárdsági horgok, vastag racsnis hevederek vagy 1 hüvelykes műanyag bütykös csat, akkor itt vagyunk, hogy szolgáljunk. Kínálunk olyan termékek széles skáláját, amelyeket a tartósan építettek. Ha érdekli a termékeink megvásárlása, nyugodtan forduljon hozzánk beszerzési megbeszéléshez. Örömmel válaszolunk minden esetleges kérdésre, és segít megtalálni az Ön igényeinek megfelelő termékeket.


Referenciák
- React hivatalos dokumentáció
- Jest hivatalos dokumentáció
- React tesztelés Könyvtár hivatalos dokumentációja
- React Hooks tesztelés Könyvtár hivatalos dokumentációja