Hogyan teszteljük a REACT SITES ÉS APPS tesztelését
Sep 10, 2025
kézikönyv
(Kép hitel: jövő)
Ha szeretné tudni, hogyan kell tesztelni, akkor a megfelelő helyen van. Tényleg ismeri a kódját, amit meg kell tennie? Tesztelte a böngészőben? Mi van, ha nem, vagy nem tudsz mindent megtenni, és megszakad a termelésben?
A tesztelő könyvtár egy segédprogramok csoportja, amelyek az alkalmazási összetevőkre vonatkozó egyedi teszteket írnak. A teszt alapelők része:
Leírás:
leírja, hogy mi a teszt
Használat / render:
az összetevőt egy olyan környezetben használja, ahol tesztelhető
Gúnyos:
létrehozza a funkciókat, hogy ellenőrizhesse feltételezéseit
Során ezt a cikket, fogom felfedezni néhány példát a reagálnak vizsgálati könyvtár annak érdekében, hogy segítsen az elindulásban ezzel értékes módja megbízhatóságának javítása a kód kimenet, valamint biztosítja a kód nem dobja bármilyen csúnya meglepetés, miután a termelésbe kerül.
Szeretne több hasznos erőforrásokat? Itt van a legjobban a legjobb
Webes tervezési eszközök
Körülbelül segít abban, hogy okosabb dolgozni. Vagy ha szüksége van egy új gépre, próbálja meg ezt a kerekítést
Legjobb laptopok a programozáshoz
. Vagy ha új webhelyet építesz, akkor szükséged van egy nagyszerű
weboldal építője
.
01. Kezdje el a React Testing Könyvtárat
Ezt a demóhoz létrehozom a CREATE-REACT-APP-t, mert már előkészíti a tesztelő könyvtárat. Ha Gatsby-t vagy egyéni beállítást használ, akkor lehet, hogy néhány konfiguráció kell futnia, mielőtt elkezdené a tesztelő könyvtár használatát.
Kezdje, hozzon létre egy új alkalmazást. Ha már a NODE.JS legújabb verziója van, akkor a következő parancsot futtathatja anélkül, hogy bármi mást telepítene) a globálisan:
npx create-react-app netmag-javascript-testing
02. Döntse el, mit kell tesztelni
Képzeld el, hogy van egy egyszerű összetevője, mondjon egy gombot néhány állapotban. Melyek azok a dolgok, amelyeknek szüksége van egy ilyen komponensre?
●
Az összetevő megjelenése:
Nem akarunk semmit, hogy váratlanul megváltoztassuk, miután az összetevőünket írtuk. Tehát pillanatfelvételt fogunk írni, hogy megragadjuk, hogyan rendezi. Aztán, ha bármi változik, akkor gyorsan láthatjuk manuális vagy vizuális teszt nélkül. Ez nagyszerű az alkatrészek számára, amelyek sok kisebb összetevőből állnak: gyorsan láthatod, amikor (és hol) megjelenik a megjelenése.
●
A különböző fiókok:
Mivel két vagy több különböző kimenetet lehetünk, meg kell vizsgálnunk, hogy mindenkit helyesen rendezzük, nem csak egyikük. Tehát szimulálni kell egy kattintási eseményt, és van egy másik pillanatfelvétel tesztje, ahogyan a kód ágának futtatása után megjelent.
●
Ez a funkciók a várt módon hívják:
Szeretnénk biztosítani, hogy a kód, amit írtunk, hogy hívjunk egy másik funkciót, ahogy azt feltételezzük, hogy ez lesz. De mivel ez a funkció egy külső függőség, nem szeretnénk ezt tesztelni. Vizsgálatainknak csak a funkcionalitást kell kapniuk, amit akarunk.
Írjuk meg az első tesztünket. Hozzon létre egy új fájlt
Mycomponent.unit.test.js
ugyanabban a mappában, mint az összetevő. A Test.js-hez való hozzáadásával a Vizsgálati könyvtár automatikusan kiválasztja. A fájl tartalma alatt van:
Az importálás reagál a "reagálva"
Import {render} a "@ tesztelés-könyvtár / reagálás"
import a "./mycomponent"
leírja ("a & lt; mycomonent / & gt; ', () = & gt; {
// tesztek itt
})
Az első dolog, amit szeretnék felhívni a figyelmet a
leírja ()
Funkció, amely két argumentumot vesz igénybe: Az első olyan karakterlánc, amelyet használhat, hogy jobban leírhassa - szöveges karakterláncként - milyen tesztet fog tenni. A mi esetünkben egyszerűen azt mondtuk, hogy meg kell rendeznie. Ez nagyon hasznos, ha valaki más a kódodra néz, vagy emlékeznie kell arra, amit egy későbbi szakaszban tettél. A jó írásbeli nyilatkozatok a kód dokumentációjának formája és egy másik jó oka a tesztek írásának.
A második argumentum a tesztek. A
leírja ()
A funkció az összes tesztet egymás után futtatja.
04. Használja a tisztítási funkciót
Vezessünk be egy helper funkciót
Az előkötelezettség ()
. Ezt kell használnunk, mert minden alkalommal, amikor valamit csinálunk az összetevővel, friss másolatot akarunk anélkül, hogy a korábban már az összetevőben már meglévő kellett volna. Vagy lehet, hogy újra meg kell adnunk az összetevőt:
Az előkötelezettség ()
Ez nekem, és átadhatjuk a tisztítási funkciót.
Import {Render, Cleanup} a "@ tesztelés-könyvtár / reagálás"
...
leírja ("Az összetevőnek meg kell adnia", () = & gt; {
ELŐKÉSZÍTÉS (CLEANUP)
}
Ebben a lépésben a komponensünkre (vagy renderelésére) leszünk.
Ismertesse ("Az összetevőnek meg kell adnia", () = & gt; {
ELŐKÉSZÍTÉS (CLEANUP)
ez ("alapvető kellékekkel", () = & gt; {
render (& micomonent / & gt;)
})
}
Ez a render hozzáférést biztosít az összeállított komponens összes renderelt tulajdonságaihoz. Jó lehet, hogy ezt a
konzol.log ()
Szóval jobban láthatod, hogy mit csinál.
Ha igen, látni fogod, hogy van néhány hasznos tulajdonság, amit kihasználhatunk itt. Megállítom az állítást (tesztelhető nyilatkozat készítése), és teszteljem azt a tartály kitermelésével. A tartály "a komponenshez társított DOM csomópontokat (az összes HTML) tartalmazza.
Most már hozzáférhetünk a tartályhoz, hogyan mondhatom el, hogy az állításom szerint renderelte? Pillanatfelvétel teszt hozzáadásával.
Gondolj egy pillanatfelvétre, mint egy fénykép. A komponensünk pillanatképét egy adott időpontban veszi igénybe. Akkor, amikor megváltoztatjuk a kódot, láthatjuk, hogy még mindig megfelel-e az eredeti pillanatképnek. Ha igen, biztosak lehetünk abban, hogy semmi sem változott az összetevőben. Ha azonban nem, akkor esetleg felfedezhetünk egy olyan kérdést, amely egy másik összetevőből származik, az egyik, amit nem lehetett volna korábban:
06. Vizsgálati tulajdonságok
A komponensek és a tulajdonságok, a komponensek is tesztelhetők pillanatfelvételekkel is. A komponensnek nyújtott különböző kellékek tesztelése nagyobb lefedettséget és bizalmat biztosít. Soha nem tudhatod, hogy ha egy követelmény azt jelenti, hogy az összetevői kellékeit visszafogadják, és a végső kimenet megváltozik.
Adja hozzá a következő objektumot a fájl tetejére:
Meghatározzuk az objektum tulajdonságait, majd használjuk a Spread operőt (három pont, amelyet az objektum neve követ:
... LightProperties)
Mivel csak egy érvét tudunk átadni, amikor így teszünk. Hasznos lehet látni, hogy milyen tulajdonságokkal jársz el az elszigeteltségben:
Képzeld el, hogy komponenseinknek van egy gombja, és meg akarja győződni arról, hogy valami történik, ha a gomb rákattint. Talán azt gondolja, hogy szeretné tesztelni az alkalmazás állapotát; Például, akkor kísértés, hogy tesztelje, hogy az állam frissül. Ez azonban nem a tesztek tárgya.
Ez egy fontos koncepciót vezet be a tesztelő könyvtár használatában: Nem vagyunk itt, hogy teszteljük az államot vagy a komponensünk működését. Itt vagyunk, hogy teszteljük, hogy az emberek hogyan használják az összetevőt, és megfelelnek az elvárásainak.
Tehát, hogy az állam frissül-e, lényegtelen; Ami azt szeretnénk, hogy teszteljük, mi a gomb megnyomásával.
Képzeljük el, hogy teszteljük egy olyan funkció kimenetelét, amely megváltoztatja az UI-t a sötét módból a fény módba. Itt van az összetevő:
Észrevette, hogy hozzáadtuk az új attribútumot
adathordozó
a gombra? Így tesztelheti ezt. Először is, importáljon egy új funkciót, tűzve a tesztelő könyvtárból:
Import {Cleanup,
Fireevent,
Vakol
} a "@ tesztelés-könyvtár / reagálás"
Használhatjuk ezt a funkciót, hogy teszteljük az UI-ben, és hogy ezek a változások következetesek:
Ez nagyszerű: nem kell manuálisan eljutnunk az oldalra, és nézzük körül, majd kattintsunk a gombra, és nézzük meg a második alkalommal - amely alatt elismerheted, valószínűleg elfelejteni vagy hiányozni valamit! Most bizalommal rendelkezünk, hogy ugyanazt a bemenetet adjuk, ugyanazt a kimenetet várhatjuk a komponensünkben.
Amikor a teszt azonosítókra kerül sor, személyesen nem tetszik
adathordozó
valamit találni a domban. Végtére is, a tesztek tárgya az, hogy utánozza, hogy mit csinál a felhasználó, és tesztelje, mi történik, ha igen.
adathordozó
Úgy érzi, mintha egy kis csalás - bár az adat-testületek valószínűleg hasznosak lesznek a QA mérnöke számára (lásd a minőségbiztosítási mérnökök szerepét).
Ehelyett használhatjuk
getbytext ()
és adja át a gombunk szövegét. Ez a módszer sokkal több viselkedéspont lenne.
08. Mock és kémítse a funkciót
Néha esetleg szükségünk van egy függvényre, de ez a funkció a vizsgálat hatálya alá tartozik. Például van egy külön modul, amely olyan funkciót tartalmaz, amely kiszámítja a PI értékét egy bizonyos számú tizedes számra.
Nem kell tesztelni, hogy mi a modul eredménye. Meg kell vizsgálnom, hogy a funkcióm a várt módon történik. További információért, hogy miért van ez, nézze meg a dobozegységet és az integrációs teszteket. Ebben az esetben "Mock" -t tudtunk megtudni:
A funkció
tohavebeencalledtimes ()
az egyik sok segítő funkció a tesztkönyvtárban, amely lehetővé teszi számunkra
A funkciók kimenetének tesztelése. Ez lehetővé teszi számunkra, hogy ne csak a tesztjeinket csak a tesztelhett modulhoz kössük, hanem azt is jelenti, hogy "kémkedhetünk", vagy meglátogathatjuk, hogy mi a funkciójuk, ha ezt a funkciót hívja.
Az írásvizsgálatok egy kicsit megdöbbentőnek tűnhetnek. Remélem, ez a bemutató egy kicsit több bizalmat adott neked, hogy kipróbálhassa. Mivel elkezdtem írni teszteket az alkalmazásaimra, tényleg nem mehetek vissza: könnyebben pihenhetek, tudva, hogy sokkal jobb örökséget hagyok azoknak, akik a jövőben fogják használni a munkámat.
Ne feledje, ha összetett webhelyet építesz, akkor meg akarja kapni
web hosting
szolgáltatási helyszínen. És ha ez a webhely valószínűleg sok eszközt tartalmaz, megbízhatóan tárolja őket
felhő tároló
döntő fontosságú.
Ez a tartalom eredetileg megjelent
net magazin
. Olvassa el többet
Webes design cikkek itt
.