<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://bigbrain.center/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=DomenicCorser30</id>
	<title>Big Brain Center - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://bigbrain.center/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=DomenicCorser30"/>
	<link rel="alternate" type="text/html" href="https://bigbrain.center/wiki/Special:Contributions/DomenicCorser30"/>
	<updated>2026-10-03T21:22:39Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://bigbrain.center/index.php?title=Kdy%C5%BE_se_testy_mno%C5%BE%C3%AD_bez_pl%C3%A1nu,_pyramidov%C3%A1_struktura_to_sprav%C3%AD&amp;diff=93933</id>
		<title>Když se testy množí bez plánu, pyramidová struktura to spraví</title>
		<link rel="alternate" type="text/html" href="https://bigbrain.center/index.php?title=Kdy%C5%BE_se_testy_mno%C5%BE%C3%AD_bez_pl%C3%A1nu,_pyramidov%C3%A1_struktura_to_sprav%C3%AD&amp;diff=93933"/>
		<updated>2026-10-02T00:40:40Z</updated>

		<summary type="html">&lt;p&gt;DomenicCorser30: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Základem obrany je používat parametrizované dotazy nebo prepared statements. Databázový ovladač pošle strukturu dotazu zvlášť a hodnoty zvlášť, takže vstup nikdy nezmění syntaxi příkazu. V praxi to znamená, že místo skládání řetězce s proměnnou uvnitř dotazu předáte hodnotu jako vázaný parametr. Tento přístup podporuje většina moderních knihoven a frameworků. Pokud používáte ORM, ověřte, že i přímé dotazy v něm jsou parametrizované, protože některé metody umožňují vložit surový řetězec.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Typická chyba je snaha izolovat všechno. Mockovat databázi, HTTP klienta i čas najednou vede k testům, které ověřují mocky, ne kód. U integračních testů je lepší použít skutečnou databázi v kontejneru nebo lehkou instanci a připravit data před každým testem. Pokud test závisí na datech z produkce, je křehký a nikdo mu nebude věřit.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Jak sloučit práci, aniž byste si rozbili histor&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Mezi typické chyby patří testování vnitřní implementace místo chování. Testy, které kontrolují volání soukromých metod nebo přesné pořadí operací, se při každém refaktoringu rozbijí. Dále se vyhýbejte sdílenému stavu mezi testy. Pořadí spuštění nesmí ovlivnit výsledek. Pokud test potřebuje data, ať si je vytvoří sám pomocí fixture. Nedávejte do jednoho testu příliš mnoho assertů – při selhání nepoznáte, která část nefunguje. Raději více menších testů s jasným názvem.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Začněte tím, že si sepíšete, co vlastně testujete. U každé části kódu si položte otázku, zda jde o čistou logiku, spolupráci komponent, nebo chování celého systému. Jednotkový test má pokrýt rozhodování, hraniční hodnoty a chybové stavy. Integrační test ověří, že spolu moduly mluví správně přes rozhraní, databázi nebo frontu. End-to-end test patří jen na kritické cesty, které musí fungovat vždy, například dokončení objednávky.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Poslední věc je práce s daty. Nepoužívej globální proměnné, pokud to není nutné. Předávej hodnoty parametrem nebo je drž v uzavřeném rozsahu. U polí a objektů dávej pozor na sdílené reference — když jedno místo v kódu změní objekt, změní se i jinde. Čistý kód se pozná tak, že změna na jednom místě nevyvolá překvapení na druhém. To je celý cíl, nic víc za tím nehledej.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Druhá chyba je přílišné mockování. Když je každá závislost nahrazená atrapou, test neověří nic skutečného. Držte se pravidla: mockujte jen to, co je pomalé, nedeterministické nebo mimo vaši kontrolu. Databázi v integračních testech raději spouštějte skutečnou, klidně v kontejneru, a po každém testu ji resetujte. Testy tak zůstanou věrohodné a přitom opakovatelné.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Praktický postup je zavést pyramidu do CI postupně. Nejprve zrychlete jednotkové testy tak, aby běžely do několika sekund. Pak přidejte integrační sadu, která se spouští při každém commitu. End-to-end testy nechte na noční běh nebo před vydáním. Sledujte dobu běhu a flakiness. Každý test, který občas padá bez změny kódu, buď opravte, nebo smažte. Nespolehlivá sada je horší než žádná.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Kde pyramida v praxi selhává Nejčastější chyba je nahrazení pyramidy zmrzlinovou kornoutkem: mnoho pomalých end-to-end testů a skoro žádné jednotkové. Vzniká to tak, že se testy píší až po nasazení a přes uživatelské rozhraní. Řešení není psát víc testů, ale přesunout odpovědnost níž. Když test selže, má být jasné, která vrstva to způsobila. Pokud k opravě potřebujete spustit celou aplikaci, test je příliš vysoko.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Testovací pyramida není dogma, ale nástroj, jak rozhodnout, kde má který test vzniknout. Vychází z jednoduché myšlenky: čím rychlejší a levnější test, tím častěji ho spouštíme. Na dně stojí jednotkové testy, uprostřed integrační a nahoře end-to-end. Pokud poměr obrátíte, sada se zpomalí, začne padat z nesouvisejících důvodů a lidé jí přestanou věřit.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Nakonec si hlídejte poměr, ale ne slepě. U malé služby může stačit pár jednotkových a jeden integrační test. U složitého systému s mnoha rozhraními bude integrační vrstva silnější. Pyramida je vodítko pro rozhodování, ne soutěž o počty. Když každý test ví, co ověřuje, a běží na správné vrstvě, sada zůstane rychlá, srozumitelná a užitečná i po letech.&lt;/div&gt;</summary>
		<author><name>DomenicCorser30</name></author>
	</entry>
	<entry>
		<id>https://bigbrain.center/index.php?title=User:DomenicCorser30&amp;diff=93932</id>
		<title>User:DomenicCorser30</title>
		<link rel="alternate" type="text/html" href="https://bigbrain.center/index.php?title=User:DomenicCorser30&amp;diff=93932"/>
		<updated>2026-10-02T00:40:37Z</updated>

		<summary type="html">&lt;p&gt;DomenicCorser30: Created page with &amp;quot;Váš průvodce světem interiérů žije už dlouho. Sdílím zde, jak si poradit v malém bytě. Nejraději hledat cesty, jak si usnadnit život.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Váš průvodce světem interiérů žije už dlouho. Sdílím zde, jak si poradit v malém bytě. Nejraději hledat cesty, jak si usnadnit život.&lt;/div&gt;</summary>
		<author><name>DomenicCorser30</name></author>
	</entry>
</feed>