Nejčastější chyby při vyvažování: příliš mnoho integračních testů, které se navzájem překrývají, a naopak málo jednotkových testů pro okrajové případy. Další je sdílený stav mezi testy – jeden test zapíše data, druhý je čte. Testy pak nelze spouštět paralelně a při selhání je těžké najít viníka. Řešením je izolace: každý test si připraví vlastní data a po sobě je uklidí. U integračních testů to znamená transakce s rollbackem nebo čistou databázi před každým testem.
Častá chyba je záměna typu a hodnoty. Výraz jako string je typ, ale hodnota “string” je něco jiného. Podobně se plete undefined a null: v TypeScriptu jsou to dva odlišné typy a jejich záměna vede k chybám při kontrole. Dále si dej pozor na typy u volitelných parametrů. Pokud funkce očekává objekt s nepovinným polem, nesmíš k němu přistupovat bez kontroly. Editor to nepustí a je to správně.
Praktický postup pro rostoucí projekt: nejdřív oddělte testy podle rychlosti a závislostí do dvou sad, které lze spouštět zvlášť. Jednotkové testy spouštějte při každé změně, integrační v rámci CI nebo před commitem. Sledujte poměr mezi nimi – obvykle platí, že jednotkových má být výrazně více. Když integrační test začne být pomalý nebo nespolehlivý, rozdělte ho na menší části nebo přesuňte logiku do testovatelné jednotky. Vyvažování není jednorázový úkol, ale průběžná údržba, která drží vývoj rychlý a předvídatelný.
Pokrytí přestává být užitečné ve chvíli, kdy začneš psát testy kvůli číslu, ne kvůli riziku. Typický projev: testy volají funkci, zkontrolují, že nespadla, ale netvrdí nic o výsledku. Další častý případ je ignorování větví, které nelze snadno zasáhnout, takže se místo jejich otestování obalí podmínkou nebo se z kódu odstraní, aby číslo vypadalo lépe. Pokud se v týmu mluví o pokrytí častěji než o chybách, které testy odhalily, je metrika na špatné cestě.
Jednotkový test ověřuje jednu logickou jednotku bez vnějších závislostí. Prakticky to znamená: žádné reálné I/O, žádná databáze, žádné volání HTTP. Závislosti nahraďte jednoduchými náhradami nebo rozhraními, která v testu implementujete ručně. Pokud musíte kvůli testu spouštět kontejner, nejste v jednotkovém testu. Typická chyba je mockovat příliš mnoho – test pak ověřuje, jak se volají mocky, ne jak funguje logika. Držte se pravidla, že jednotkový test má běžet v řádu milisekund a musí být deterministický.
Práce ve větvi je bezpečná jen tehdy, když víš, kde jsi. git branch vypíše větve, git switch -c nova-vetev vytvoří a přepne. Častá chyba: upravovat soubory, pak přepnout větev a divit se, že změny „zmizely”. Git je nemaže, jen je nechá v pracovním adresáři a přepnutí buď zablokuje, nebo je přenese jinam. Před přepnutím buď změny commitni, nebo je odlož pomocí git stash. Sloučení (git merge) přináší konflikty — nejsou porucha, jsou normální stav. Otevři označené soubory, vyber správnou verzi, odstraň značky <<<<<<>>>>>>, pak soubor přidej a commit dokonči.
Jak začít bez zbytečných potíží První krok je nastavit kompilátor dostatečně volně. Zapni “strict”: true až ve chvíli, kdy máš aspoň základní typy hotové. Příliš brzké zapnutí striktního režimu vede k tomu, že vývojáři začnou obcházet typy přes any, a tím se celý smysl ztratí. Dále si dej pozor na pole typu any. Pokud se objevuje na rozhraních mezi moduly, znamená to, že typová informace někde chybí. Je lepší ji doplnit než ji přemostit.
S růstem codebase se hranice mezi oběma typy přirozeně posouvá. To, co bylo dříve integrační test, se může stát testem jednotkovým, jakmile se závislost vytáhne za rozhraní. Naopak nová funkce může vyžadovat integrační test dřív, než ji vůbec půjde izolovat. Nesnažte se hranici určit jednou provždy. Místo toho ji revidujte při každém větším refaktoringu a při zavádění nové vrstvy. Pomáhá pojmenovat testy podle toho, co ověřují, ne podle toho, jak jsou implementované.
Jakmile codebase přeroste několik desítek souborů, začnou se testy plést. Test, který měl ověřovat jednu funkci, najednou potřebuje databázi, síť a konfiguraci. Běží pomalu, padá z nesouvisejících důvodů a nikdo neví, co vlastně testuje. Rozdělení na jednotkové a integrační testy není formalita kvůli reportům, ale nástroj, jak udržet zpětnou vazbu rychlou a srozumitelnou.
První automatizace nemá být přepisování celé firmy. Vyber si jednu opakující se nudnou činnost, kterou děláš alespoň několikrát týdně: přejmenování souborů, slévání tabulek, stahování dat, posílání příloh. Napiš skript, který ji zvládne za tebe, a spusť ho ručně. Teprve když funguje spolehlivě, můžeš ho nechat běžet naplánovaně. Typická chyba začátečníka je, že rovnou řeší velký projekt a po dvou dnech narazí na neznámou knihovnu a skončí. Malý hotový skript tě naučí víc než nedokončený velký.
In the event you liked this post in addition to you would want to acquire guidance about přejít na web i implore you to go to the web site.