<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.rettungsdienstblog.eu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ivey792354835</id>
	<title>Rettungsdienst-Wiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.rettungsdienstblog.eu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ivey792354835"/>
	<link rel="alternate" type="text/html" href="https://wiki.rettungsdienstblog.eu/index.php?title=Spezial:Beitr%C3%A4ge/Ivey792354835"/>
	<updated>2026-10-17T19:10:26Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://wiki.rettungsdienstblog.eu/index.php?title=Pytest_A_Unittest:_Co_Zvolit_Pro_Testy_V_Pythonu&amp;diff=455236</id>
		<title>Pytest A Unittest: Co Zvolit Pro Testy V Pythonu</title>
		<link rel="alternate" type="text/html" href="https://wiki.rettungsdienstblog.eu/index.php?title=Pytest_A_Unittest:_Co_Zvolit_Pro_Testy_V_Pythonu&amp;diff=455236"/>
		<updated>2026-10-11T14:44:05Z</updated>

		<summary type="html">&lt;p&gt;Ivey792354835: Die Seite wurde neu angelegt: „Konzistence poráží originali&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Nezapomínejte, že responzivita není jen o šířce. Grid i Flexbox umí pracovat s logickými vlastnostmi jako gap, které nahrazuje staré okraje a výrazně zjednodušuje mezery. Používejte gap místo margin u potomků, předejdete tím poslednímu prvku v řadě s nežádoucím odsazením. A hlavně testujte v prohlížeči, ne jen v návrhovém nástroji: zkuste zúžit okno, přepnout na tmavý režim a sim…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Konzistence poráží originali&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Nezapomínejte, že responzivita není jen o šířce. Grid i Flexbox umí pracovat s logickými vlastnostmi jako gap, které nahrazuje staré okraje a výrazně zjednodušuje mezery. Používejte gap místo margin u potomků, předejdete tím poslednímu prvku v řadě s nežádoucím odsazením. A hlavně testujte v prohlížeči, ne jen v návrhovém nástroji: zkuste zúžit okno, přepnout na tmavý režim a simulovat zvětšené písmo. Právě tam se chyby v rozložení projeví nejdřív.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Kde se skrytý čas schováv&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Pro ověření výjimek slouží konstrukce with pytest.raises(HodnotaError):, do jejíhož těla patří volání, které má výjimku vyvolat. Častá chyba je, že se testovaný kód vykoná ještě před blokem with nebo se výjimka zachytí příliš obecně. Držte se konkrétního typu výjimky, jinak test projde i při úplně jiné chybě. Podobně u porovnávání plovoucích čísel nepoužívejte rovnost, ale pytest.approx. Pro složitější výstupy si vypište jen relevantní části, protože masivní asserty se špatně čtou ve výpisu selhání.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Parametrizace a fixtury místo kopírování kódu Opakované volání stejné funkce s různými vstupy řeší dekorátor @pytest.mark.parametrize. Místo pěti téměř shodných testů napíšete jeden a předáte seznam dvojic vstup a očekávaný výstup. Fixtury fungují podobně jako setUp v unittest, ale elegantněji: funkce ozdobená @pytest.fixture připraví data nebo objekt a test si ji vyžádá pouhým uvedením názvu v parametru. Fixtura může být sdílená v souboru conftest.py, který pytest automaticky načte z adresáře testů. Typická chyba začátečníka je předávání fixture přes globální proměnnou; tím se ztrácí izolace mezi testy a výsledky závisí na pořadí spuštění.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Častou chybou je, že vývojáři simulují příliš mnoho nebo příliš málo. Příliš mnoho simulace vede k testům, které neodhalí skutečné problémy, protože se chovají jinak než produkce. Příliš málo simulace znamená, že testy jsou pomalé a nespolehlivé. Držte se pravidla: simulujte jen to, co nemůžete mít pod kontrolou, a to věrně. Pokud externí služba vrací data v určitém formátu, váš simulátor musí vracet stejný formát včetně okrajových případů, jako jsou prázdné odpovědi, chybové kódy nebo neočekávané typy.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Nejčastější chyba je míchání nesouvisejících změn do jedné větve. Oprava překlepu, refaktoring a nová funkce v jednom commitu znamenají, že při řešení konfliktu nepoznáte, co k čemu patří. Každý commit by měl mít jeden jasný záměr a popis, který vysvětluje proč, ne jen co. Pokud během práce narazíte na nesouvisející problém, zapište si ho a řešte v samostatné větvi. Ušetříte tím hodiny při code review i při zpětném hledání příčiny chyby.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;U každé fixtury myslete na úklid. Pokud otevíráte soubor nebo připojení k databázi, používejte yield místo return. Kód před yieldem je příprava, kód po něm úklid a proběhne i tehdy, když test selže. Bez toho zůstávají otevřené prostředky a při větším počtu testů se běh zpomalí nebo spadne na chybějící spojení. Stejně tak nedávejte do fixtur logiku, kterou test sám potřebuje ověřit, jinak testujete přípravu, ne chování.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Ruční testování funkcí v Pythonu pomocí print a spouštění skriptů zvládne každý, ale při prvním větším projektu se ztratí přehled, které případy už byly ověřeny a které ne. pytest řeší právě tento problém: testy jsou obyčejné funkce, jejichž název začíná na test_, a pytest je sám najde a spustí. Není potřeba dědit ze žádné třídy ani psát vlastní testovací runner, což je hlavní rozdíl oproti unittest z vestavěné knihovny.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Spouštění je příkaz pytest v terminálu, volitelně s cestou k souboru nebo přepínačem -k pro filtrování podle názvu a -x pro zastavení po prvním selhání. Během vývoje se hodí přepínač -q pro stručnější výstup a --lf pro opakování pouze naposledy selhaných testů. Nepoužívejte pytest jen jako náhradu za ruční kontrolu; cílem je sada testů, která po každé změně kódu rychle řekne, zda něco nespadlo. Začněte jedním souborem, postupně přidávejte fixtury a parametrizaci a teprve pak řešte pokrytí. Příliš mnoho testů bez jasného účelu škodí stejně jako žádné.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Základní jednotkou je testovací funkce bez parametrů. Uvnitř se používá běžný příkaz assert, například assert secti(2, 3) == 5. Když test selže, pytest vypíše hodnoty obou stran výrazu, takže není nutné přidávat vlastní chybové zprávy. Na začátek si vystačíte s jedním souborem test_neco.py. Konvence je jasná: soubory pojmenovávejte test_*.py nebo *_test.py a funkce test_*. Jinak je pytest ignoruje a budete marně hledat, proč se nic nespustilo.&lt;/div&gt;</summary>
		<author><name>Ivey792354835</name></author>
	</entry>
	<entry>
		<id>https://wiki.rettungsdienstblog.eu/index.php?title=Benutzer:Ivey792354835&amp;diff=455231</id>
		<title>Benutzer:Ivey792354835</title>
		<link rel="alternate" type="text/html" href="https://wiki.rettungsdienstblog.eu/index.php?title=Benutzer:Ivey792354835&amp;diff=455231"/>
		<updated>2026-10-11T14:44:02Z</updated>

		<summary type="html">&lt;p&gt;Ivey792354835: Die Seite wurde neu angelegt: „Někdo, kdo světem interiérů žije už dlouho. Sdílím zde, jak si poradit v malém bytě. Nejraději ukazovat chytrá řešení, která zvládne každý.“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Někdo, kdo světem interiérů žije už dlouho. Sdílím zde, jak si poradit v malém bytě. Nejraději ukazovat chytrá řešení, která zvládne každý.&lt;/div&gt;</summary>
		<author><name>Ivey792354835</name></author>
	</entry>
</feed>