+886-4-7524167

Vad är det bästa sättet att håna krokar i tester?

Jul 09, 2025

Helen Wong
Helen Wong
Som chef för produktdesign leder Helen teamet i att utveckla banbrytande webbing och lyftprodukter för olika branscher. Hennes arbete betonar funktionalitet, hållbarhet och användarvänlighet.

Hej där! Som en krokar leverantör har jag varit i spelet länge, och jag vet hur viktigt det är att testa krokar ordentligt. En av de viktigaste aspekterna av testkrokar är att håna dem effektivt. Så låt oss dyka in i det jag tycker är det bästa sättet att håna krokar i tester.

Varför håna krokar i tester?

Först och främst, varför behöver vi till och med håna krokar? Tja, krokar interagerar ofta med externa resurser som API: er, databaser eller webbläsarens inbyggda - i funktioner. När vi skriver enhetstester vill vi isolera komponenten eller funktionen vi testar. Hocking Hooks gör att vi kan styra inmatningen och utgången på dessa krokar, vilket gör våra tester mer pålitliga och snabbare.

Om du till exempel använder en anpassad krok som hämtar data från ett API, vill du inte lita på att det faktiska API är tillgängligt och returnerar konsekvent data under testet. Istället kan du håna kroken för att returnera en fördefinierad uppsättning data.

Olika sätt att håna krokar

1. Manuell hån

Ett av de mest enkla sätten att håna krokar är att göra det manuellt. Låt oss säga att du har en anpassad krok som heterusefetchdataDet hämtar en del data från ett API.

// usefetchData.js import {useeffect, usestate} från 'react'; const usefetchData = () => {const [data, setData] = usestate (null); const [Loading, SetLoading] = usestate (true); UseEffect (() => {const fetchData = Async () => {försök {const svar = Await Fetch ('https://example.com/api/data'); const resultat = Await Response.json (); setData (resultat); Setload (falsk);} catch (Error) {Console.error ('fel fetching);',};}; FetchData (); returnera {data, ladda}; }; Exportera standard UsefetchData;

För att manuellt håna denna krok i ett test kan du skapa en hålig implementering.

// __mocks __/usefetchData.js const usefetchData = () => {return {data: {meddelande: 'hockade data'}, laddning: falsk}; }; Exportera standard UsefetchData;

I din testfil kan du sedan använda den här håliga.

Importera React från 'React'; importera {render, skärm} från '@test-library/react'; importkomponentThatusesfetchData från './ComponentThatusesfetchData'; jest.mock ('./ usefetchData'); beskriva ('ComponentThatusesfetchData', () => {it ('bör visa hånade data', () => {render (<componentThatusesfetchData />); const dataElement = screen.getByText ('mocked data'); förväntas (dataElement) .TobeInThedocume ();});});});});

Manuell hålning ger dig full kontroll över den håliga implementeringen. Du kan ändra returvärden baserat på olika testscenarier. Det kan dock vara lite tid - konsumerar, särskilt om du har många krokar att håna.

2. Använda Jests automatiska hålande

Jest har en funktion där den automatiskt kan skapa håna för dig. Om du har en krok i en fil kan Jest skapa en hålig version av den kroken med något standardbeteende.

Om du till exempel har en enkel krok somusecounter:

// usecounter.js import {usestate} från 'react'; const usecounter = () => {const [count, setCount] = usestate (0); const inkrement = () => setCount (räkning + 1); return {count, inkrement}; }; Exportera standard usecounter;

I ditt test kan du använda Jests automatiska hån.

Importera React från 'React'; importera {render, skärm} från '@test-library/react'; importkomponentThatusescounter från './ComponentThatusescounter'; jest.mock ('./ usecounter'); beskriva ('ComponentThatusEscounter', () => {it ('bör använda den hånade räknaren', () => {render (<komponentThatusescounter />); // Du kan ytterligare anpassa håligheten här om det behövs // till exempel, om komponenten kallar inkrement, kan du kontrollera det håliga beteendet});});

Fördelen med att använda Jests automatiska hån är att det är snabbt och enkelt att installera. Men det kanske inte är så flexibelt som manuell hån, särskilt när du behöver mycket specifikt håligt beteende.

3. Använda React Testing Library och React Hooks Testing Library

React Hooks Testing Library är ett bra verktyg för att testa krokar. Det ger verktyg för att göra krokar och testa deras beteende.

Låt oss säga att du har en krok som beräknar summan av två siffror:

// useum.js import {usestate} från 'react'; const useSum = (a, b) => {const [sum, setSum] = usestate (a + b); retur summa; }; Exportera standardanvändningar;

Du kan använda React Hooks Testing Library för att testa denna krok och också håna beroenden om det behövs.

import {renderhook} från '@test-library/react-hooks'; importanvändning från './usesum'; beskriva ('useM', () => {it ('bör beräkna summan korrekt', () => {const {result} = renderhook (() => useum (2, 3)); förvänta sig (resultat.Current) .Tobe (5);});});

Om din krok har vissa externa beroenden kan du använda samma principer för manuell eller jest som hånar för att hantera dem.

Bästa metoder för hånkrokar

  • Håll Mocks enkla: Dina hånar ska vara så enkla som möjligt. De behöver bara efterlikna det beteende som ditt test behöver. Över - Komplicera håliga kan göra dina tester svåra att förstå och underhålla.
  • Testa olika scenarier: Se till att testa olika scenarier genom att ändra håliga data. Till exempel, om din krok har olika tillstånd som lastning, framgång och fel, testa alla dessa tillstånd genom att returnera olika håliga värden.
  • Separata problem: Håll dina håna åtskilda från din produktionskod. Detta gör det lättare att hantera och uppdatera dem när din kodbas utvecklas.

Real - World Applications in Our Hooks Business

Som leverantör av krokar har vi olika typer av krokar, somIndustriella styrka krokarsom används i tunga applikationer. När vi utvecklar programvara för att hantera vårt lager, spåra beställningar eller visa produktinformation använder vi krokar i våra React -applikationer.

Att testa dessa krokar är avgörande för att säkerställa att vår programvara fungerar korrekt. Om vi ​​till exempel har en krok som hämtar lagernivån för våra industriella styrka krokar från en databas, kan vi håna denna krok i våra tester för att undvika att förlita sig på den faktiska databasen.

Vi har också produkter somTjocka spärrband för tung utrustningoch1 tum plastskamspänne. Vår programvara kan använda krokar för att beräkna fraktkostnader, visa produktinformation eller hantera kundorder. Att håna dessa krokar hjälper oss att skriva tillförlitliga och snabba tester.

Slutsats och uppmaning till handling

Hocking Hooks är en väsentlig del av Testing React -applikationer. Genom att använda rätt tekniker som manuell hålning, Jests automatiska hån eller reagera krokar testbibliotek kan du se till att dina krokar fungerar som förväntat.

Om du är på marknaden för högkvalitativa krokar, oavsett om det är industriella styrka, tjocka spärrband för tung utrustning eller 1 tum plastkamspänne, är vi här för att servera dig. Vi erbjuder ett brett utbud av produkter som är byggda för att hålla. Om du är intresserad av att köpa våra produkter kan du gärna nå ut till oss för en upphandlingsdiskussion. Vi är glada att svara på alla frågor du kan ha och hjälpa dig att hitta rätt produkter för dina behov.

23.437.2

Referenser

  • Reagera officiell dokumentation
  • Jest officiell dokumentation
  • React Testing Library Official Documentation
  • React Hooks Testing Library Official Documentation

Skicka förfrågan