Jak začít s testováním v Pythonu pomocí pytest

Aus Rettungsdienst-Wiki
Zur Navigation springen Zur Suche springen


Po každé změně vždy spusťte testy s reálnými daty a porovnejte časy. Měřte nejen rychlost jednoho dotazu, ale celkovou zátěž serveru. Sledujte i počet řádků, které databáze prochází, a snažte se ho minimalizovat. Cílem není napsat nejkratší SQL, ale nejefektivnější cestu k datům. Po pár iteracích získáte databázi, která zvládá úložné prostory v malém bytěýrazně vyšší zátěž bez navyšování hardwaru.

COPY package*.json ./

Další pastí je spoléhat na jeden výukový zdroj. I ten nejlepší kurz má omezený rozsah. Kombinujte proto oficiální dokumentaci, interaktivní cvičení, videa i čtení cizího kódu. Když narazíte na problém, nehledejte hned hotové řešení – zkuste ho nejprve rozebrat a vyřešit sami. Teprve pak se podívejte, jak ho vyřešili jiní. Tím se naučíte myslet jako programátor, ne jen opisovat.

Častou chybou začátečníků je testování více věcí v jednom testu. To je špatně, protože když selže jedna část, nevíte, co konkrétně je rozbité. Místo toho rozdělte scénáře do malých testů, každý se zaměří na jednu konkrétní vlastnost. Například funkce pro zpracování textu může mít test na prázdný vstup, If you have any thoughts with regards to where and how to use wiki.ai-Ar.Kz, you can speak to us at our own webpage. test na normální vstup, test na odstranění diakritiky a tak dále. Tím získáte jasný obraz o tom, co funguje a co ne.
Při výběru IDE pro Python nejde o to, které je „nejlepší", ale které nejlépe sedí vašemu stylu práce. Začněte u velikosti projektů a míry zkušeností. Začátečník ocení jednoduchost a rychlé spuštění, zatímco zkušený vývojář potřebuje pokročilé ladění, profiler nebo podporu databází. Než se rozhodnete, vyzkoušejte alespoň tři nástroje na reálném projektu – ne jen na „ahoj světe". Sledujte, jak rychle se vám pracuje s kódem, jak citlivě reaguje na chyby a jestli vám vyhovuje rozložení oken.

Základním stavebním kamenem je obyčejná funkce pojmenovaná podle toho, co testuje. Název by měl začínal slovem test, jinak ho pytest nenajde. Nejjednodušší test může vypadat třeba takto: def test_scitani(): uvnitř které zavoláte funkci a porovnáte výsledek s očekávanou hodnotou pomocí klíčového slova assert. Pokud podmínka neplatí, test selže a pytest vypíše, která část selhala. Tento přístup je sice primitivní, ale pro drtivou většinu případů stačí.

Nakonec si dejte pozor na paměťovou náročnost. Některá IDE jsou náročná na RAM, a pokud máte starší počítač, může být práce s nimi frustrující. V takovém případě zvažte lehčí nástroj, který se sice nechlubí stovkami funkcí, ale je stabilní a rychlý. Než se rozhodnete, zkuste si v IDE otevřít projekt s tisíci soubory a sledujte, jak dlouho trvá indexace a jak reaguje při psaní. Vyplatí se také zkontrolovat, jestli lze vypnout automatické skenování celého projektu, což často zrychlí chod. Výběr IDE je tedy kompromis mezi funkcemi, výkonem a vaším pohodlím – neexistuje univerzálně nejlepší, jen ten, který vám vyhovuje.

Pokud potřebujete zjistit, co se v repozitáři změnilo, použijte git log. Zobrazí se seznam commitů s jejich hashem, autorem a datem. K vrácení změn v pracovním adresáři slouží git restore, který obnoví soubory do stavu posledního commitu. Nebojte se experimentovat – Git je navržen tak, aby vám umožnil chyby opravit. Pokud chcete zrušit poslední commit, použijte git reset HEAD~, ale pozor, neodstraníte tím změny ze souborů, pouze z historie.

Na závěr si zapamatujte: první jazyk není doživotní závazek. Většina programátorů během kariéry vystřídá několik jazyků. Zkušenost s prvním jazykem vám dá pevný základ, na který pak navážete. Takže se rozhodněte podle svého cíle, zůstaňte u jednoho jazyka a pravidelně kódujte. Důslednost je důležitější než původní volba. Když se chytíte, můžete se kdykoli vydat jiným směrem – a to je na programování to nejkrásnější.

Práce s parametrizací a fixture Pokud potřebujete otestovat stejnou logiku pro mnoho různých vstupů, využijte dekorátor @pytest.mark.parametrize. Předepíšete seznam dvojic (vstup, očekávaný výstup) a pytest automaticky spustí test pro každou kombinaci. Ušetříte si spoustu kopírování kódu a testy zůstanou čitelné. Mějte ale na paměti, že pokud jeden z parametrů selže, ostatní se stále spustí – to je užitečné pro odhalení všech chyb najednou.

Pokud nevíte, čím začít, zkuste Python. Jeho syntaxe je blízká angličtině, takže se rychle dostanete k podstatě – k algoritmům a řešení problémů. Navíc je univerzální: používá se ve webových aplikacích, datové analýze, automatizaci i umělé inteligenci. Častou chybou je ale přeskočit základy a hned zkoušet pokročilé knihovny. Bez pevných základů – proměnné, podmínky, cykly, funkce – se snadno ztratíte a odradíte.