Hogyan lehet tesztelni a komponenseket a React.CloneElement -rel a React enzim segítségével?

Aug 08, 2025

Hagyjon üzenetet

James Lee
James Lee
Folyamatmérnök a GMP gyárunkban. Szerepem magában foglalja az extrakciós folyamatok finomítását a növényi por előállításának méretezhetőségének és konzisztenciájának biztosítása érdekében, miközben fenntartja a magas színvonalú szabványokat.

Az összetevők tesztelése a React -ben a fejlesztési folyamat kulcsfontosságú része az alkalmazás megbízhatóságának és funkcionalitásának biztosítása érdekében. Az egyik hatékony technika a React tesztelés során a használataReact.CloneElementenzimmel kombinálva. Enzimszállítóként azért vagyok itt, hogy végigvezesse Önt az alkatrészek tesztelésének folyamatánReact.CloneElementenzim használatával.

A reagálás megértése.CloneElement

React.CloneElementegy beépített - a React funkcióban, amely lehetővé teszi a meglévő React elem klónozását, és opcionálisan új kellékeket ad át. Ez rendkívül hasznos lehet, ha a tesztelés során módosítani szeretné egy összetevő viselkedését vagy megjelenését. A szintaxisReact.CloneElementa következő:

React.CloneElement (elem, [kellékek], [... gyermekek])

Itt,elemaz a elem, amelyet klónozni szeretne,kellékekegy opcionális objektum, amely tartalmazza az új kellékeket, amelyeket át kell adni a klónozott elemnek, ésgyermekekaz opcionális új gyermekek a klónozott elemhez.

Paridis Rhizoma Extract PolyphyllinNatural Organic Beetroot Powder

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

Mielőtt elkezdenénk tesztelniReact.CloneElementEnzim használatával be kell állítanunk egy megfelelő tesztelési környezetet. Először győződjön meg arról, hogy reagált és enzimet telepített -e a projektbe. Telepítheti az enzimet és annak adaptert a React számára NPM vagy fonal segítségével:

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

Ezután konfigurálja az enzimet a teszt beállítási fájl megfelelő adapterének használatához. A React 16 esetében ez így néz ki:

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

Komponensek tesztelése React.Cloneelement és enzim segítségével

Tegyük fel, hogy van egy egyszerű React komponensünkGombEz elfogadja afogyatékkal élőktámaszt:

importáljon reagálva a „react -ból”; const gomb = ({fogyatékos, gyermekek}) => {return (<gomb letiltva = {letiltás}> {childs} </butr>); }; Exportálási alapértelmezett gomb;

Meg akarjuk tesztelni, hogy aGomba komponens viselkedik, amikor afogyatékkal élőkA prop megváltozott. HasználhatunkReact.CloneElementEnzimtesztjeinkben ennek elérése érdekében.

importáljon reagálva a „react -ból”; Import {sekély} az 'enzimből'; Importálás gomb a './button' -ból; Írja le ('gombkomponens', () => {it ('le kell tiltani, ha a letiltott prop igazi', () => {const OrigeralElement = <Babban> kattintson a Me </blub>; Várható (Wrapper.find ('Button'). várj (wrapper.find ('gomb').

A fenti tesztekben először létrehozunk egy eredeti példánytGombelem. Akkor használjukReact.CloneElementúj elemet létrehozni a kívánt módonfogyatékkal élőktámaszt. Végül az enzimeket használjuksekélymegjelenítés a klónozott elem megjelenítéséhez, és ellenőrizze, hogy afogyatékkal élőkagombAz elem helyesen van beállítva.

Fejlett tesztelési forgatókönyvek

Bonyolultabb forgatókönyvekben érdemes tesztelni azokat az alkatrészeket, amelyek beágyazódtak olyan gyermekek vagy komponensek, amelyek a kontextusra támaszkodnak. Nézzük meg egy nevezett alkatrésztSzülői vállalkozásEz aGyermekkomponensbenne:

importáljon reagálva a „react -ból”; importálja a gyermekkomponens a './childComponent' -ből; const ParentComponent = () => {return (<div> <childComponent /> </div>); }; Exportálási alapértelmezett szülőkomponens;

HasználhatunkReact.CloneElementTovábbi kellékek átadása aGyermekkomponensA tesztelés során.

importáljon reagálva a „react -ból”; Import {sekély} az 'enzimből'; Import ParentComponent a './parentComponent' -ből; importálja a gyermekkomponens a './childComponent' -ből; Írja le ('ParentComponent', () => {it ('további kellékeket kell adnia a ChildComponentnek', () => {const Wrapper = sekély (<ParentComponent />); const Child = Wrapper.find (childComponent); const ClonedChild = react.CloneLement (Child.get.get.get (0), {Testprop: 'TestValue'}); sekély (klónozó);

Ebben a példában először a sekély megjelenítjük aSzülői vállalkozásés keresse meg aGyermekkomponensbenne. Akkor használjukReact.CloneElementklónozni aGyermekkomponensÉs adjon át egy új támaszot. Végül sekélyen látjuk a klónozástGyermekkomponensÉs ellenőrizze, hogy az új támasz megfelelő -e megfelelően.

A react.CloneElement használata a kontextussal

A React Context egy módja annak, hogy megosszák az adatokat az alkatrészek között anélkül, hogy a kellékeket manuálisan át kellene adniuk az összetevő fa minden szintjén. Használhatja isReact.CloneElementA kontextusra támaszkodó komponensek tesztelése.

Tegyük fel, hogy van egyKontextusproviderés aKontextusosösszetevő:

Import React, {CreateContext, usheContext} a'React '-től; const myContext = createContext (); const contextProvider = ({gyermekek}) => {const contextValue = {üzenet: 'hello a kontextusból'}; return (<myContext.provider érték = {contextValue}> {gyermekek} </myContext.provider>); }; const contextConsumer = () => {const {message} = usecontext (myContext); visszatérés <div> {üzenet} </div>; }; Export {ContextProvider, ContextConsumer};

HasználhatunkReact.CloneElementhogy tesztelje aKontextusosKomponens elszigeteltségben egy ál -kontextus érték biztosításával.

importáljon reagálva a „react -ból”; Import {sekély} az 'enzimből'; Import {ContextProvider, ContextConsumer} a './ContextComponents' -ből; Írja le ('ContextConsumer', () => {it ('' meg kell jelenítenie a helyes üzenetet a kontextusból ', () => {const mockConTextValue = {üzenet:' Mock üzenet '}; const OrigeralElement = <contextConsumer />; const klónedelemon = reageaktus.cloneLement (OriginalElement, {Context: MockConTextValue}); {CLONEDElement} </ContextProvider>);

Következtetés

Az alkatrészek teszteléseReact.CloneElementAz enzim használata egy hatékony technika, amely lehetővé teszi a reagálási komponensek viselkedésének módosítását és tesztelését különböző forgatókönyvekben. Akár egyszerű komponenseket tesztel, vagy olyan összetett elemeket, amelyek a kontextusra támaszkodnak,React.CloneElementSegíthet robusztusabb és megbízhatóbb tesztek készítésében.

Ha érdekli a React tesztelési képességeinek fejlesztése, akkor érdekelhet néhány kapcsolódó termékünk. Nézze meg aTermészetes organikus cékla por,Rozmaringolaj, ésParidis rhizoma kivonat polifillin-

Ha bármilyen kérdése van, vagy érdekli az enzimtermékeink megvásárlása a tesztelési igényekhez, kérjük, vegye fel velünk a kapcsolatot a részletes megbeszélés céljából. Azért vagyunk itt, hogy a legjobb megoldásokat nyújtsuk Önnek a React tesztelési követelményeihez.

Referenciák

  • React hivatalos dokumentáció
  • Enzim hivatalos dokumentáció
A szálláslekérdezés elküldése