Pytest versus unittest: co zvolit pro testování v Pythonu
Nakonec, jednotkové testy nejsou jen o pokrytí kódu. Důležité je udržovat je v čistotě, pravidelně je spouštět a revidovat. Když se změní požadavky, testy se musí adaptovat. NUnit nabízí možnost parametrizace testů pomocí [TestCase], čímž můžete pokrýt více vstupů jednou metodou – to šetří místo a zlepšuje čitelnost. Vyhněte se ale přílišnému množství testů, které jen opakují stejnou logiku s jinými čísly. Kvalita nad kvantitou je zde klíčová. Psaní unit testů se vám vrátí v okamžiku, kdy nová změna rozbije něco, co jste nečekali, a test vám to řekne během pár sekund.
Na závěr jedno doporučení, které vám ušetří hodiny ladění: navrhněte layout nejprve pro mobil pomocí Gridu, který máte jako základ, a přidávejte flexbox tam, kde potřebujete zarovnávat menší celky. Když pak budete potřebovat rozložit tlačítka v patičce nebo popisky v tabulce, sáhněte po flexboxu. Tento přístup vám dá předvídatelný výsledek a minimalizujete počet chyb. A pokud narazíte na situaci, kdy vám něco nefunguje, podívejte se nejprve, jestli jste náhodou nepoužili flexbox na místo, kde by měl být grid – to je zdroj devadesáti procent problémů.
Na závěr: testy pište průběžně, ne až po dopsání celé aplikace. Nejlepší je psát testy společně s kódem, jakmile vytvoříte novou funkci. Tím získáte okamžitou zpětnou vazbu a snáze odhalíte chyby v návrhu. Pravidelně spouštějte celou sadu a sledujte, jestli se něco nerozbilo. pytest nabízí i pokročilé funkce, jako je měření pokrytí kódu, ale pro začátek stačí zvládnout základy. Jakmile si osvojíte práci s fixtures a parametrizací, testování vás bude bavit a kód bude spolehlivější.
Co dělat, když test selže a jak se vyhnout pastem Když test selže, je důležité se nejprve podívat na hlášení, které NUnit vrací. Často obsahuje srovnání očekávané a skutečné hodnoty, což okamžitě ukáže, kde je problém. Nezačínejte přepisovat implementaci, dokud nemáte jistotu, When you loved this short article and you want to receive more info relating to celý článek generously visit the website. že test samotný je správně. Častou chybou je testování interních detailů místo veřejného chování – pak se testy stanou křehkými a při každé refaktorizaci se zbytečně rozbijí. Místo toho testujte veřejné rozhraní tříd a metod.
Při práci s kombinací obou technologií si dejte pozor na to, aby se kontejnery vzájemně neovlivňovaly. Pokud máte uvnitř Grid položky flexbox kontejner, který používá flex-grow, může se stát, že se prvek roztáhne více, než jste chtěli. Otestujte si vždy chování při extrémních šířkách – ať už je to 320px telefon nebo 4K monitor. Typická chyba je nastavit pevnou výšku hlavičky a pak v ní flexboxem rozmístit prvky – při přiblížení prohlížeče nebo na zařízeních se zvětšeným písmem se obsah začne přetékat. Místo toho používejte min-height a nechte flexboxu volnost.
Další pastí je ignorování automatického chování obou technologií. Grid umí vytvořit responzivní mřížku bez jediného media dotazu, pokud použijete jednotky jako minmax() a auto-fit. Například: grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)). Tím docílíte toho, že se počet sloupců přizpůsobí šířce okna, a vy nemusíte psát breakpointy pro každou velikost. Flexbox zase bez problémů zvládne zarovnání s gap – mezery mezi prvky nastavíte jednou vlastností a nemusíte řešit marginy u posledního prvku. Když tyto vlastnosti neznáte, píšete zbytečně více kódu, než je nutné.
Další pastí je asynchronní kód. Pokud testujete metody vracející Task, použijte atribut [Test] na asynchronní metodu a místo Assert.AreEqual raději využijte Assert.That s odpovídajícími matchery. NUnit podporuje async metody od verze 3, takže se nebojte psát await přímo v testu. Vyhnete se tak zablokování vlákna a nesprávným výsledkům. Nezapomeňte ani na testování výjimek – pomocí Assert.Throws ověříte, že metoda správně selže, a to je často stejně důležité jako testování šťastné cesty.
Přechod z MySQL na PostgreSQL je častější, než se zdá, a většinou za ním stojí konkrétní potřeba: lepší podpora pokročilých datových typů, plnohodnotné transakce s referenční integritou, nebo jen chuť využít úložné prostory v malém bytěýkonnější nástroje pro analytické dotazy. Nejde o kopírování dat a hotovo. Klíčové je pochopit rozdíly v chování obou systémů, jinak narazíte na chyby, které se na první pohled tváří jako neškodné varování, ale ve výsledku vám rozbijí aplikaci.
Nakonec se naučte číst chybové hlášky. TypeScript vám často řekne, kde je problém, ale ne vždy hned rozumíte, proč. Když narazíte na chybu, podívejte se na konkrétní typy, které očekává a které dostává. Často jde o to, že jste zapomněli na null check nebo jste předali objekt s přebytkem vlastností. Tyto chyby jsou vlastně dárky – objeví je dřív, než byste je našli v prohlížeči.