Nejdřív si rozmyslete, co má test dokázat Než začnete psát první test, napište si na papír, jaké chování očekáváte. Nezačínejte od implementace, ale od vstupu a výstupu. Dejme tomu, že máte funkci pro výpočet slevy. Vstupem je cena a typ zákazníka, výstupem je cena po slevě. Co se stane, když je cena nula? Co když je typ neznámý? Co když je cena záporná? Tyto hraniční případy jsou to, co unit test skutečně testuje. Pokud je ignorujete, test projde i v případě, že funkce vrací nesmysl.
Začněte od nejjednoduššího scénáře – ověřte, že funkce vrací správný výsledek pro běžný vstup. Teprve poté přidejte testy pro prázdný vstup, nulové hodnoty nebo neočekávané datové typy. Typickou chybou začátečníků je psát testy, které kopírují implementaci. Pokud testujete, že se volá metoda s určitým argumentem, ale nezajímá vás, co se stane s návratovou hodnotou, test je k ničemu.
Další častou chybou začátečníků je testování implementace místo chování. Pokud testujete, že se uvnitř metody volá nějak zařídit malou kuchyniá jiná metoda, nebo že se mění stav objektu, který je privátní, děláte z testu nepružnou svěrací kazajku. Jakmile pak změníte způsob výpočtu, ale výsledek zůstane stejný, test se začne sypat, přestože je kód správně. Místo toho testujte to, co voláte zvenčí: výsledek, výjimku, změnu veřejného stavu. Jedině tak vám test pomůže při refaktoringu.
Poslední doporučení se týká správy kontejnerů. Příkaz docker ps -a ukáže všechny kontejnery, nejen běžící. docker logs zobrazí výstup aplikace, což je první krok při řešení problému. Pokud chcete kontejner zastavit, použijte docker stop. rady pro rekonstrukci úklid nepoužívaných obrazů a kontejnerů spusťte docker system prune, ale pozor, smaže i zastavené kontejnery a sítě. Když tyto příkazy zvládnete, dokážete aplikaci spustit reprodukovatelně na jakémkoli počítači, kde je Docker nainstalovaný. To je hlavní přínos, kvůli kterému se kontejnery vyplatí.
Další běžnou chybou je ignorování velikosti obrazů. Každá vrstva, kterou v Dockerfile přidáte, se ukládá do mezipaměti. Když ale změníte soubor s příkazy, Docker musí přestavět všechny následující vrstvy. Proto je dobré kopírovat soubory až po instalaci závislostí. Konkrétně: nejprve zkopírujte soubor s balíčky (například package.json), spusťte instalaci, a teprve poté zkopírujte zbytek aplikace. Tím se výrazně zrychlí opakované sestavování. Navíc používání oficiálních obrazů s tagem alpine vám ušetří desítky megabajtů, protože tyto obrazy jsou extrémně minimalizované.
Kontejnerizace s Dockerem se dnes stala standardem pro vývoj i nasazení aplikací. Místo instalace závislostí přímo do systému si vystačíte s jediným balíčkem, který obsahuje vše potřebné. Pro začátečníka může být ale prvním krokem pochopit, že Docker není virtuální stroj. Neočekávejte plnohodnotný operační systém s vlastním jádrem. Kontejner běží na sdíleném jádře hostitele, což znamená nižší režii a rychlejší start. Prakticky to znamená, že aplikace, která funguje na vašem počítači, poběží stejně na serveru, a to bez ohledu na systém. Tohle je hlavní důvod, proč se vyplatí Docker vůbec zkoušet.
Na závěr si zkuste odpovědět na otázku: co se stane, když test spustím podruhé? Měl by projít stejně jako poprvé. Pokud ne, máte problém s náhodou nebo s globálním stavem. Typickým viníkem je datum a čas, náhodná čísla nebo statické proměnné. Použijte injektáž hodin nebo generátoru náhodných čísel. První test, který je stabilní, rychlý a testuje chování, je lepší než deset testů, které jen opakují implementaci. Takový test vám dá jistotu, že kód dělá to, co má – a to je celý smysl unit testování.
První unit test obvykle vzniká z dobrého úmyslu, ale často končí jako formalita, kterou nikdo nečte. Než začnete psát, rozhodněte se, co má test dokazovat. Nemá smysl testovat, že metoda vrací očekávanou hodnotu, když ji nikdo nepoužívá. Zaměřte se na chování, které je důležité pro byznys logiku, nebo na okrajové případy, které by mohly způsobit chybu v produkci.
Než začnete psát první kontejner, potřebujete znát dva základní soubory: Dockerfile a docker-compose.yml. Dockerfile definuje, jak se obraz sestaví. Často začínáte z oficiálního obrazu, jak.Mazovia.edu.Pl třeba s jazykem Python nebo Node, a pak přidáte své soubory a příkazy. Typická chyba začátečníka je instalovat vše do jednoho obrovského obrazu. Místo toho si osvojte pravidlo: jeden kontejner = jedna zodpovědnost. Webový server, databáze a frontend si zaslouží vlastní služby. K jejich propojení pak slouží právě docker-compose, který vám umožní spustit více kontejnerů najednou a definovat jejich vzájemnou komunikaci.
If you have any kind of concerns relating to where and how to use https://jak.mazovia.edu.pl/index.php/Čistý_Kód_v_JavaScriptu:_co_dělá_rozdíl_mezi_chaosem_a_řádem, you can call us at the web site.