본문 바로가기
뒤로
공지사항
닫기

Jak využít ES6+ funkce v praxi

페이지 정보

작성자 Michaela Dease 작성일 26-08-22 06:32 조회 2 댓글 0

본문

600Další tip: pro testování složitějších flow, kde jedna async akce volá druhou, použijte middleware, který zaznamenává všechny dispatchnuté akce. Můžete si napsat vlastní jednoduchý mock pro dispatch, který sbírá akce do pole, a pak porovnávat, že akce byly zavolány ve správném pořadí. Vyhněte se testování celé aplikace – soustřeďte se na jednotlivé akce izolovaně, abyste měli testy rychlé a spolehlivé.

Začněte u reducerů. Reducer by měl být čistou funkcí, která na základě předchozího stavu a akce vrací nový stav. Testujte jednotlivé přechody stavů: co se stane při akci ADD_TODO, co při REMOVE_TODO, Here is more in regards to osvěTlení V obýváku take a look at our site. a hlavně co při neznámé akci – měl by vrátit stejný stav. Napište test, který ověří, úložné prostory v malém bytě že reducer nemění původní stav (nemutuje ho) a že vrací nový objekt. Typická chyba je testovat pouze happy path, ale zapomenout na okrajové případy: prázdný stav, akci s neplatnými daty, nebo akci, která by neměla stav změnit.

Pro lepší čitelnost používejte nové metody polí jako „map", „filter" nebo „reduce" místo cyklů. Ale mějte na paměti, že tyto metody vytvářejí nová pole, což může být neefektivní pro velké datové sady. V takovém případě zvažte generator funkce nebo „for…of". Klíčem k úspěchu je kombinace nových funkcí s rozumným výběrem; ne všechno je nutné použít všude.

Reducer je čistá funkce, takže testování je přímočaré. Vytvořte si test, který zavolá reducer s aktuálním stavem a akcí, a ověřte, že výsledný stav odpovídá očekávání. Důležité je netestovat celý store, ale pouze samotný reducer. Použijte strukturu, kde každý test pokrývá jednu akci a okrajové případy, jako je neznámá akce (měla by vrátit původní stav) nebo prázdný stav. Vyhněte se mutaci vstupního stavu – vždy vracejte nový objekt, jinak testy mohou procházet nespolehlivě.

Destrukturalizace a defaultní hodnoty Destrukturalizace umožňuje rozbalit objekty a pole do proměnných. Místo „const a = obj.a; const b = obj.b;" píšete „const a, b = obj;". U funkcí se hodí nastavit výchozí hodnoty parametrů: „function test(x = 1, y = 2 = {})". Pozor na to, že defaultní hodnoty se aplikují jen tehdy, když je hodnota „undefined", ne když je null. Častá chyba je zapomenout na výchozí prázdný objekt, což vede k chybě při přístupu k vlastnosti.

Jak nábytek na míru to – praktický postup Začněte s jednoduchým příkladem: thunk, rady pro rekonstrukci který načte data a dispatchnuje success akci. V testu vytvořte mockovanou API funkci, která vrací Promise s daty. Poté zavolejte thunk s dispatch a getState. Ověřte, že dispatch byl volán s loading akcí na začátku a success akcí na konci. Nezapomeňte otestovat i chybový scénář – mock API by měl vracet rejection a ověřit, že dispatch obdrží error akci. Toto pokryje hlavní větve.

Základní pravidlo zní: používejte Flexbox pro rozložení obsahu v rámci jednoho směru, a Grid pro celkovou strukturu stránky. Například hlavní oblast s článkem a postranním panelem si žádá Grid – definujete dvě sloupce, které se na mobilu sloučí do jednoho. Uvnitř článku pak pomocí Flexboxu snadno zarovnáte tlačítka nebo ikony. Tím docílíte čistého kódu, který se snadno udržuje.

Na závěr jedno doporučení: pište CSS mobile-first. Základní styly pro mobil, pak přes media queries rozšiřujte layout pro větší obrazovky. Grid i Flexbox se chovají předvídatelněji, když začínáte od nejmenšího rozlišení. Vyhnete se tak i zbytečnému přepisování vlastností, které se v desktopové verzi stejně mění. S těmito nástroji je responzivní design konečně srozumitelný a efektivní.

V praxi se vyplatí sledovat i trend pokrytí v čase, nejen aktuální hodnotu. Pokud pokrytí roste, ale počet bugů neklesá, je něco špatně. Možná testujete špatné věci, nebo máte testy, které jsou závislé na datech a neodhalují skutečné problémy. V takovém případě je lepší investovat čas do revize testů a odstranění těch, které nepřinášejí hodnotu, než zvyšovat číslo. Někdy je totiž lepší mít 70% pokrytí s kvalitními testy než 90% pokrytí s hromadou bezcenných testů, které jen zpomalují build a zvyšují náklady na údržbu.

Častým problémem je zapomenout na to, že async akce vrací Promise. V testu proto vždy použijte await na zavolání akce, jinak se test ukončí dřív, než se akce dokončí, a vy dostanete falešný průchod. Dále pozor na to, že pokud používáte Redux Toolkit, createAsyncThunk generuje akce pending, fulfilled a rejected automaticky – testujte je podle názvu, ne podle řetězce typu 'users/fetch/pending'.

Pozor na typické chyby: zapomínání na min-width: 0 u Grid položek, které obsahují text – bez něj může obsah přetékat. U Flexboxu zase snadno vytvoříte „nekonečný řádek", když zapomenete flex-wrap. Vždy také testujte na skutečných zařízeních, nejen v devtools. Prohlížeče mají drobné odlišnosti v implementaci, zejména u starších verzí, a to se projeví až při reálném použití.

댓글목록 0

등록된 댓글이 없습니다.

공지사항
TOP

세컨로드(2ndRoad) 정보

개인정보 이용약관 운영정책 청소년 보호정책
고객상담 070-4045-4134 운영시간: AM 10:00 ~ PM 05:00 (주말 및 공휴일 제외.) Copyright © 2001-2024 COREACOMMERCE.CO,.LTD. All Rights Reserved.

회사명 COREACOMMERCE.CO,.LTD
사업자등록번호 0127-02-013943
주소 2F,2-16-10, Tanashicho Nishitokyo-shi, Tokyo, JAPAN

고객상담 070-4045-4134 운영시간: AM 10:00 ~ PM 05:00 (주말 및 공휴일 제외.) Copyright © 2001-2024 COREACOMMERCE.CO,.LTD. All Rights Reserved.