Jak testować komponenty z React.conelement w React za pomocą enzymu?

Aug 08, 2025

Zostaw wiadomość

James Lee
James Lee
Inżynier procesu w naszej fabryce GMP. Moja rola polega na udoskonaleniu procesów ekstrakcji w celu zapewnienia skalowalności i konsystencji w produkcji proszku roślin przy jednoczesnym utrzymaniu wysokiej jakości standardów.

Testowanie komponentów w React jest kluczową częścią procesu rozwoju w celu zapewnienia niezawodności i funkcjonalności aplikacji. Jedną potężną techniką w testowaniu react jest stosowanieReact.Cloneelementw połączeniu z enzymem. Jako dostawca enzymu jestem tutaj, aby poprowadzić Cię przez proces testowania komponentów zReact.CloneelementZa pomocą enzymu.

Zrozumienie React.Cloneelement

React.Cloneelementjest zbudowaną - funkcją w React, która pozwala sklonować istniejący element React i opcjonalnie przekazywać do niego nowe rekwizyty. Może to być niezwykle przydatne, gdy chcesz zmodyfikować zachowanie lub wygląd komponentu podczas testowania. SkładniaReact.Cloneelementjest następujący:

React.coneElement (element, [rekwizyty], [... dzieci])

Tutaj,elementto element, który chcesz klonować,rekwizytyjest opcjonalnym obiektem zawierającym nowe rekwizyty, które chcesz przekazać do sklonowanego elementu idziecisą opcjonalnymi nowymi dziećmi dla sklonowanego elementu.

Paridis Rhizoma Extract PolyphyllinNatural Organic Beetroot Powder

Konfigurowanie środowiska testowania

Zanim zaczniemy testować zReact.CloneelementZa pomocą enzymu musimy skonfigurować odpowiednie środowisko testowe. Najpierw upewnij się, że w swoim projekcie zainstalowałeś i enzym. Możesz zainstalować enzym i jego adapter dla react za pomocą NPM lub przędzy:

NPM instalacja-enzym-save-dev enzyme-adapter-reacct-16

Następnie skonfiguruj enzym, aby użyć odpowiedniego adaptera w pliku konfiguracji testu. Dla React 16 wyglądałoby to tak:

Import enzymu z „enzymu”; Adapter importowy z „enzymu-adapter-reacct-16”; Enzyme.configure ({adapter: nowy adapter ()});

Testowanie składników z react.conelement i enzymem

Załóżmy, że mamy prosty komponent React, nazywanyPrzyciskto akceptujewyłączonyrekwizyt:

Import reaguj z „react ”; const Button = ({Disabled, Children}) => {return (<przycisk disabled = {disabled}> {dzieci} </button>); }; Domyślny przycisk Eksportuj;

Chcemy sprawdzić, jakPrzyciskkomponent zachowuje się, gdywyłączonyrekwizyt został zmieniony. Możemy użyćReact.CloneelementW naszych testach enzymatycznych, aby to osiągnąć.

Import reaguj z „react ”; import {Shallow} z „enzymu”; Przycisk importuj z „./button”; Opisz ('przycisk Component', () => {it ('powinien być wyłączony, gdy wyłączony rekwizyt jest prawdziwy', () => {const oryginalElement = <button> kliknij mnie </przycisk>; const cloneDelement = react.cloneElement (oryginał, {niepełnosprawny: true}); const rzęs = płytki (kloneredElement); Oczekuj („przycisk”). Prop („niepełnosprawny”). Oczekuj („przycisk”). Prop („niepełnosprawny”).

W powyższych testach najpierw tworzymy oryginałPrzyciskelement. Następnie używamyReact.CloneelementAby utworzyć nowy element z pożądanymwyłączonyrekwizyt. Wreszcie używamy enzymówpłytkirenderowanie w celu renderowania sklonowanego elementu i sprawdzenia, czywyłączonyProp of theprzyciskelement jest ustawiony poprawnie.

Zaawansowane scenariusze testowania

W bardziej złożonych scenariuszach możesz chcieć przetestować komponenty, które zagnieżdżone dzieci lub komponenty opierające się na kontekście. Rozważmy komponent o nazwieKomponent nadrzędnyTo czyniKomponent dla dzieciWewnątrz:

Import reaguj z „react ”; importować Childcomponent z „./childComponent”; const trentComponent = () => {return (<nviv> <ChildComponent /> </div>); }; Eksportuj domyślny komponent nadrzędny;

Możemy użyćReact.Cloneelementprzekazać dodatkowe rekwizyty doKomponent dla dzieciPodczas testowania.

Import reaguj z „react ”; import {Shallow} z „enzymu”; Import ParentComponent z „./parentComponent”; importować Childcomponent z „./childComponent”; Opisz ('parycomponent', () => {it ('powinien przekazać dodatkowe rekwizyty do childcomponent', () => {contral opraper = Shallow (<rodzicComponent />); const child = wrapper.find (childComponent); const clonedChild = React.cloneElement (child.get (0), {TestProP: 'TestValue'}); const newwrapher = newwrapher = Shallow (ClonedChild);

W tym przykładzie najpierw płytko renderujemyKomponent nadrzędnyi znajdźKomponent dla dzieciWewnątrz. Następnie używamyReact.CloneelementKlonowaćKomponent dla dzieciI przekazaj do niego nowy rekwizyt. Wreszcie, płytko renderujemy klonowanymiKomponent dla dziecii sprawdź, czy nowy rekwizyt jest ustawiony poprawnie.

Korzystanie z React.Cloneelement z kontekstem

React Context to sposób na udostępnianie danych między komponentami bez konieczności ręcznego przekazywania rekwizytów przez każdy poziom drzewa komponentów. Możesz także użyćReact.CloneelementAby przetestować komponenty, które opierają się na kontekście.

Załóżmy, że mamyContextProvideri aContextConsumerczęść:

import React, {createContext, usecontext} from'React '; const myContext = CreateContext (); const contextProvider = ({dzieci}) => {const contextValue = {message: „Witaj z kontekstu”}; return (<myContext.provider value = {contextValue}> {dzieci} </MyContext.provider>); }; const contextConsumer = () => {const {message} = usecontext (myContext); return <div> {message} </div>; }; Export {ContextProvider, ContextConsumer};

Możemy użyćReact.CloneelementAby przetestowaćContextConsumerKomponent w izolacji poprzez zapewnienie pozornej wartości kontekstu.

Import reaguj z „react ”; import {Shallow} z „enzymu”; import {ContextProvider, ContextConsumer} z './contextComponents'; Opisz ('contextConsumer', () => {it ('powinien wyświetlić prawidłową wiadomość z kontekstu', () => {const mockContextValue = {message: 'Mock Message'}; const oryginalElement = <contextConsumer />; const cloneDelement = React.cloneElement (originalElement, {context: mockContelement}); const consterdelement = FLLONEDElement = FLLONEDElement = FLLONEDElement = FLLONEDElement = FLONows. <ContextProvider> {CloneDelement} </ContextProvider>);

Wniosek

Testowanie komponentów zReact.CloneelementUżywanie enzymu jest potężną techniką, która pozwala modyfikować i przetestować zachowanie komponentów React w różnych scenariuszach. Niezależnie od tego, czy testujesz proste komponenty, czy złożone, które polegają na kontekście,React.Cloneelementmoże pomóc w tworzeniu bardziej solidnych i niezawodnych testów.

Jeśli chcesz ulepszyć swoje możliwości testowania React, możesz być również zainteresowany niektórymi z naszych powiązanych produktów. Sprawdź naszeNaturalny organiczny proszek z burakówWOlej rozmarynowy, IEkstrakt Paridis Rhizoma Polifyllin.

Jeśli masz jakieś pytania lub jesteś zainteresowany zakupem naszych produktów enzymatycznych na potrzeby testowania, skontaktuj się z nami w celu uzyskania szczegółowej dyskusji. Jesteśmy tutaj, aby zapewnić Ci najlepsze rozwiązania dla twoich wymagań dotyczących testowania React.

Odniesienia

  • React oficjalna dokumentacja
  • Oficjalna dokumentacja enzymatyczna
Wyślij zapytanie