Hogyan lehet tesztelni a legördülő listákat a React összetevők enzimmel?

Nov 07, 2025

Hagyjon üzenetet

Chris Evans
Chris Evans
Health Food Blogger és Asclepius Brand nagykövet. Tippeket osztok meg a növényi kivonatok beépítéséről a napi wellness rutinokba, és áttekintem az egészségügyi élelmiszeripar legújabb termékeit.

Sziasztok, React fejlesztő kollégák! Ma arról fogok beszélni, hogyan tesztelhetem a React összetevők legördülő menüit az enzimmel. Enzim beszállítóként első kézből láttam a megfelelő tesztelés fontosságát a React projektekben, különösen, ha a bosszantó legördülő menükről van szó.

Miért fontos a legördülő listák tesztelése?

A legördülő menük a React alkalmazások gyakori felhasználói felületi összetevői. Olyan dolgokra használják őket, mint például az opciók kiválasztása, az adatok szűrése és a menükben való navigálás. De az is bonyolult lehet, hogy igazat adjanak. Egy kis hiba a legördülő menüben rossz felhasználói élményhez vezethet, például az opciók nem jelennek meg megfelelően, vagy a legördülő menü nem záródik be, amikor kellene.

Itt jön be a tesztelés. Ha teszteket ír a legördülő listákhoz, ezeket a hibákat már a fejlesztési folyamat korai szakaszában elkaphatja, még mielőtt élesre kerülnének. Az Enzyme pedig egy nagyszerű eszköz erre.

Kezdő lépések az enzimmel

Mielőtt belemerülnénk a tesztelési legördülő menükbe, nézzük meg gyorsan, hogyan állíthatja be az Enzyme-t a React projektben. Ha még nem tette meg, telepítenie kell az Enzyme-ot és annak adapterét a Reacthoz. Ezt megteheti npm vagy fonal segítségével:

npm install --save-dev enzim enzim-adapter-react-16

Az Enzyme telepítése után konfigurálnia kell, hogy működjön a React verziójával. A tesztbeállítási fájlban (általábansrc/setupTests.js), adja hozzá a következő kódot:

enzim importálása az „enzimből”; Adapter importálása az „enzyme-adapter-react-16”-ból; Enzyme.configure({ adapter: new Adapter() });

Most már készen áll a tesztelés megkezdésére!

Egy egyszerű legördülő menü tesztelése

Kezdjük egy egyszerű legördülő összetevő tesztelésével. Íme egy példa a React alapvető legördülő menüjére:

import React, { useState } from 'react'; const Legördülő = () => { const [isOpen, setIsOpen] = useState(false); const options = ['Option 1', 'Option 2', 'Option 3']; const toggleDropdown = () => { setIsOpen(!isOpen); }; return ( <div> <button onClick={toggleDropdown}>Lördülő menü váltása</button> {isOpen && ( <ul> {options.map((opció, index) => ( <li key={index}>{option}</li> ))} </ul> )} </div> ); }; export alapértelmezett Legördülő menü;

A legördülő menü teszteléséhez meg kell győződnünk arról, hogy a gombra kattintva átkapcsolja a lehetőségek listájának láthatóságát. Az alábbi módon tehetjük meg ezt az enzim használatával:

import React a 'react'-ból; import { sekély } az „enzimből”; legördülő menü importálása innen: './Dropdown'; description('Dropdown', () => { it('ki kell kapcsolnia a legördülő listát, ha a gombra kattint', () => { const wrapper = shallow(<Dropdown />); const button = wrapper.find('button'); // Kezdetben a legördülő listát be kell zárni expect(wrapper.find('ul').) button.simulate('click').exists()).toBe(true) // Kattintson a gombra a legördülő menü bezárásához.

Ebben a tesztben először használjuksekélyhogy aLegördülő menüösszetevő. Ezután megtaláljuk a gombot használvaleletés szimuláljon egy kattintási eseményt a segítségévelszimulálni. Végül használjuklétezikannak ellenőrzésére, hogy az opciók listája látható-e vagy sem.

A legördülő menü tesztelése

Most lépjünk egy lépéssel tovább, és teszteljük a legördülő menüben az egyik opció kiválasztását. Módosítjuk a miénketLegördülő menükomponens az opció kiválasztásához:

import React, { useState } from 'react'; const Legördülő = () => { const [isOpen, setIsOpen] = useState(false); const [selectedOption, setSelectedOption] = useState(null); const options = ['Option 1', 'Option 2', 'Option 3']; const toggleDropdown = () => { setIsOpen(!isOpen); }; const selectOption = (opció) => { setSelectedOption(opció); setIsOpen(false); }; return ( <div> <button onClick={toggleDropdown}> {selectedOption ? selectedOption : 'Válasszon opciót'} </button> {isOpen && ( <ul> {options.map((option, index) => ( <li key={index} onClick={>(option) =n}) ))} </ul> )} </div> ); }; export alapértelmezett Legördülő menü;

Az opció kiválasztásának teszteléséhez szimulálnunk kell egy kattintást az egyik opcióra, és ellenőriznünk kell, hogy a kiválasztott opció megfelelően frissült-e. Íme a teszt:

import React a 'react'-ból; import { sekély } az „enzimből”; legördülő menü importálása innen: './Dropdown'; description('Dropdown', () => { it('ki kell választani egy beállítást, ha kattint', () => { const wrapper = sekély(<Legördülő />); const button = wrapper.find('button');) // Nyissa meg a legördülő menüt). button.simulate('click'); // Keresse meg az első opciót, és kattintson rá const firstOption). firstOption.simulate('click') // Ellenőrizze, hogy a kiválasztott opció frissült-e expect(wrapper.find('button').text()).toBe('Option 1' });

Ebben a tesztben először a gombra kattintva nyitjuk meg a legördülő listát. Ezután megtaláljuk az első lehetőséget a használatávalelsőés szimuláljon rá egy kattintást. Végül ellenőrizzük, hogy a gomb szövege frissült-e a kiválasztott opciónak megfelelően.

Tesztelés összetettebb legördülő menükkel

A valós alkalmazásokban a legördülő menük sokkal összetettebbek lehetnek, mint az egyszerű példáink. Lehetnek beágyazott beállítások, egyéni stílus vagy aszinkron adatbetöltés. Amikor ezeket az összetettebb legördülő listákat teszteli, a tesztelési stratégiát ennek megfelelően kell módosítania.

Ha például a legördülő menü beágyazott opciókat tartalmaz, akkor tesztelnie kell mind a szülő, mind a gyermek opciók viselkedését. Előfordulhat, hogy fejlettebb enzimválasztókra is szüksége lehet, hogy konkrét elemeket keressen a legördülő menüben.

Ha a legördülő menü aszinkron módon tölti be az adatokat, akkor olyan technikákat kell alkalmaznia, mint plasync/waitvagysetTimeouthogy várja meg az adatok betöltését a tesztek futtatása előtt. Íme egy példa az aszinkron legördülő menü tesztelésére:

import React, { useState, useEffect } from 'react'; const AsyncDropdown = () => { const [isOpen, setIsOpen] = useState(false); const [opciók, setOptions] = useState([]); useEffect(() => { const fetchOptions = async () => { const response = wait fetch('https://api.example.com/options'); const data = wait response.json(); setOptions(data); }; if (isOpen) { fetchOptions(); } ]}, [isOpen const toggleDropdown = () => { setIsOpen(!isOpen); }; return ( <div> <button onClick={toggleDropdown}>Lördülő menü váltása</button> {isOpen && ( <ul> {options.map((opció, index) => ( <li key={index}>{option}</li> ))} </ul> )} </div> ); }; alapértelmezett AsyncDropdown exportálása;
import React a 'react'-ból; import { sekély } az „enzimből”; AsyncDropdown importálása a './AsyncDropdown' mappából; description('AsyncDropdown', () => { it('be kell tölteni az opciókat a legördülő menü megnyitásakor'), async () => { global.fetch = jest.fn(() => Promise.resolve({ json: () => Promise.resolve(['Option 1', 'Option'] }2) ); wrapper = sekély(<AsyncDropdown />);

Ebben a tesztben használjukis.fnhogy kigúnyolja aelhozniAPI-t, és adjon vissza néhány mintaadatot. Ezután megnyitjuk a legördülő listát, és megvárjuk, amíg a beállítások betöltődnekvárj wrapper.update(). Végül ellenőrizzük, hogy a megfelelő számú opció jelenik-e meg.

Következtetés

A React Components with Enzyme legördülő menük tesztelése elengedhetetlen része az alkalmazások minőségének és megbízhatóságának biztosításának. Az ebben a blogbejegyzésben felvázolt technikák követésével hatékony teszteket írhat egyszerű és összetett legördülő listákhoz egyaránt.

Ha kiváló minőségű Enzyme termékeket keres tesztelési igényeihez, itt vagyunk, hogy segítsünk. Kínálunk még egy sor egyéb terméket is, mint plGyógyszerészeti minőségű B12 vitamin Cas 13422-55-4 metilkobalamin por,Gyári áron Nano Graphene Powder, ésKrill olaj kapszula.

Ha bármilyen termékünk vásárlása iránt érdeklődik, vagy kérdése van, forduljon hozzánk bizalommal a beszerzési megbeszélés érdekében. Mindig szívesen segítünk!

Krill Oil CapsuleFactory Price Nano Graphene Powder

Hivatkozások

  • Az enzimek dokumentációja: https://enzymejs.github.io/enzyme/
  • React Testing Library: https://testing-library.com/docs/react-testing-library/intro/
A szálláslekérdezés elküldése