Hur testar jag komponenter med React.StrictMode i React med enzym?

May 21, 2025

Lämna ett meddelande

Michael Brown
Michael Brown
Växtbiolog som specialiserat sig på kiwifruktodling. Med 1 miljon tunnland tillägnad Kiwi -plantager innebär min roll att optimera tillväxtförhållandena och extrahera de bästa näringsämnena från dessa superfrukt för våra pulver.

Testkomponenter i React är en avgörande del av utvecklingsprocessen, vilket säkerställer att din applikation fungerar som förväntat och förblir stabil när den utvecklas. React.StrictMode är ett värdefullt verktyg som hjälper dig att identifiera potentiella problem i dina komponenter under utvecklingen. I det här blogginlägget, som enzymleverantör, ska jag vägleda dig genom processen att testa komponenter med React.StrictMode med enzym.

Förstå React.StrictMode

React.StrictMode är en omslagskomponent som tillhandahålls av React som aktiverar ytterligare kontroller och varningar för dess ättlingar. Det gör inte något synligt användargränssnitt; Istället hjälper det dig att hitta vanliga misstag och potentiella problem i dina komponenter. När du avslutar en del av din applikation med React.StrictMode kommer React att utföra extra kontroller som att upptäcka arvets livscykelmetoder, varning om felaktig användning avUSStateochanvändarekrokar och identifierar oväntade biverkningar.

Importera React från 'React'; const app = () => {return (<react.StrictMode> {/ * Dina komponenter går hit */} </react.StrictMode>); }; export standardapp;

Varför använda enzym för testning?

Enzym är ett JavaScript -testverktyg för React som gör det lättare att testa dina React -komponenters utgång. Det tillhandahåller en uppsättning metoder för att manipulera, korsa och fråga dina React -komponenters virtuella DOM. Med enzym kan du simulera användarinteraktioner, testa komponenttillstånd och verifiera den återgivna utgången. Som enzymleverantör kan jag intyga dess flexibilitet och användarvänlighet, vilket gör det till ett populärt val bland React -utvecklare för testning.

Ställa in testmiljön

Innan du börjar testa dina komponenter med React.StrictMode med enzym måste du ställa in din testmiljö. Först måste du installera nödvändiga paket. Om du använder NPM kan du köra följande kommandon:

NPM Installation-Save-DeV-enzymenzym-adapter-React-16 React-Test-Renderer

Här,enzymär testverktyget,enzymadapter-reakt-16är adaptern för React 16 (du kan behöva justera versionen enligt din React -version) ochReact-Test-renderareanvänds för att göra React -komponenter på rena JavaScript -objekt.

Därefter måste du konfigurera enzym för att använda adaptern. Du kan göra detta i en installationsfil, till exempelsetuptests.js:

importera enzym från 'enzym'; Importera adapter från 'enzym-adapter-reaktion-16'; Enzym.configure ({adapter: ny adapter ()});

Skriva tester med React.StrictMode och enzym

Låt oss anta att du har en enkel React -komponent som heterKnappDet gör en knapp med lite text.

Importera React från 'React'; const -knapp = ({text}) => {return <knapp> {text} </knapp>; }; Exportera standardknapp;

Låt oss nu skriva ett test för den här komponenten med enzym och React.StrictMode.

Importera React från 'React'; importera {grunt} från 'enzym'; importknapp från './Button'; beskriva ('knappkomponent', () => {it ('bör göra rätt text', () => {const text = 'klick mig'; const wrapper = grunow (<react.StrictMode> <knappt text = {text} /> < /react.StrictMode>); const -knapp = wrapper.find ('knapp');

I detta test använder vigrundåtergivningsmetod från enzym för att göraKnappKomponent insveptReact.StrictMode. Sedan hittar viknappelement medhittametod och verifiera att texten inuti knappen matchartextprop vi passerade.

Testa komponentstillståndsförändringar

Enzym låter dig också testa komponentstillståndsförändringar. Låt oss säga att du har en komponent som heterDisksom har en tillståndsvariabelräknaoch en knapp för att öka räkningen.

import react, {usestate} från 'react'; const counter = () => {const [count, setCount] = usestate (0); const inkrement = () => {setCount (count + 1); }; returnera (<div> <p> count: {count} </p> <knapp onclick = {inkrement}> inkrement </knapp> </div>); }; export standardräknare;

Så här kan du testa tillståndet i denna komponent:

Importera React från 'React'; importera {Mount} från 'enzym'; importräknare från './counter'; beskriva ('counter component', () => {it ('bör öka räkningen när knappen klickas', () => {const wrapper = mount (<react.StrictMode> <counter /> </react.StrictMode>); const -knapp = wrapper.find ('knapp'); const initialCount = parseInt (wrapper.fin ('). 10);

I detta test använder vimonterametod från enzym till att göraDiskKomponent insveptReact.StrictMode. Vi hittar sedan knappen, får det ursprungliga räkningsvärdet, simulerar ett klick på knappen och verifierar att räkningen har ökat.

Testningskomponentens livscykelmetoder

React.StrictMode kan hjälpa dig att upptäcka arvets livscykelmetoder i dina komponenter. Låt oss säga att du har en komponent med en arvComponentWillReceivePropsmetod.

import react, {komponent} från 'react'; klass LegacyComponent förlänger komponent {ComponentWillReceiveProps (NextProps) {// någon logik här} render () {return <Div> {this.props.text} </div>; }} Exportera standard LegacyComponent;

När du testar denna komponent med React.StrictMode kommer React att utfärda en varning om användningen av den äldre livscykelmetoden.

Importera React från 'React'; importera {grunt} från 'enzym'; importera LegacyComponent från './legacyComponent'; beskriva ('LegacyComponent', () => {it ('bör göra korrekt', () => {const text = 'hello'; const wrapper = grunow (<react.StrictMode> <LegacyComponent Text = {Text} /> </react.StrictMode>); Expect (wrapper.find ('Div').

Denna varning hjälper dig att identifiera och uppdatera dina komponenter för att använda de nya livscykelmetoderna eller krokarna.

Asclepius Supply High Quality Psicose Powder /d Psicose PowderMedium Chain Triglycerides

Testkrokar

Om din komponent använder krokar kan React.StrictMode också hjälpa dig att upptäcka potentiella problem. Låt oss till exempel säga att du har en anpassad krok som hämtar data från ett API.

import react, {usestate, useeffect} från 'react'; const usefetch = (url) => {const [data, setData] = usestate (null); const [Loading, SetLoading] = usestate (true); UseEffect (() => {const fetchData = async () => {försök {const response = Await Fetch (url); const json = vänta svar.json (); setData (json);} catch (error) {console.error (fel); {Slutligen {setloading (falsk) returnera {data, ladda}; }; const datafetcher = ({url}) => {const {data, loading} = usefetch (url); if (lastning) {return <p> lastning ... </p>; } return <pre> {json.Stringify (data, null, 2)} </pre>; }; Exportera standarddatafetcher;

Så här kan du testa den här komponenten:

Importera React från 'React'; importera {Mount} från 'enzym'; importera datafetcher från './datafetcher'; beskriva ('datafetcher component', () => {it ('bör återge lastning av text initialt', () => {const url = 'https://example.com/api/data'; const wrapper = mount (<react.strictMode> <datafetcher url = {url}/> </react.trictmode>); förvänta sig (wrapper.find ('p'). text ()). TOBE ('Loading ...');

React.StrictMode kommer att säkerställa attanvändbarhaka ianvändarutnyttjandeAnpassad krok kallas korrekt och att det inte finns några oväntade biverkningar.

Slutsats

Testkomponenter med React.StrictMode med enzym är ett effektivt sätt att säkerställa kvaliteten och stabiliteten på dina React -applikationer. React.StrictMode hjälper dig att identifiera potentiella problem tidigt i utvecklingsprocessen, medan enzym ger en kraftfull uppsättning verktyg för att testa dina komponenter. Som enzymleverantör uppmuntrar jag dig att integrera dessa testmetoder i ditt utvecklingsarbetsflöde.

Om du är intresserad av högkvalitativa enzymprodukter eller andra relaterade leveranser, erbjuder vi också en rad produkter somAsclepius levererar högkvalitativ psicosapulver /d psicosa pulver,Naturlig fosfatidylserin 70%, pulveriserad fosfatidylserinochTriglycerider med medelkedja. Om du har några frågor eller vill diskutera ett potentiellt köp, tveka inte att kontakta oss för ytterligare information och för att starta en upphandlingsförhandling.

Referenser

  • React Documentation: https://reactjs.org/docs/strict-mode.html
  • Enzymdokumentation: https://enzymejs.github.io/enzyme/
Skicka förfrågan