První unit test bez zbytečné paniky: praktický průvodce

From Rikkiepedia
Jump to navigation Jump to search

Když už máte funkční skript, přichází na řadu další typický problém: spouštění v pravidelných intervalech. Místo ručního spouštění můžete využít plánovač úloh v operačním systému (např. na Windows nebo cron na Linuxu). Skript uložte jako .py a v plánovači nastavte příkaz, který ho spustí. Dejte si pozor na to, aby skript běžel s absolutními cestami, a pokud potřebujete, aby se okno nezobrazovalo, použijte pythonw místo python. Tím se vyhnete tomu, že se vám otevře konzole při každém spuštění.

Začněte u nejmenší možné jednotky — u funkce, která nemá žádné vedlejší efekty. Ideální je funkce, která na základě vstupu vrací výstup. Například funkce pro výpočet plochy kruhu, převod měny nebo validaci e-mailu. Takové funkce jsou snadno testovatelné, protože je nemusíte mockovat ani nastavovat komplikované prostředí. Vytvořte si testovací soubor, importujte funkci a napište první test, který ověří známý výsledek. Pokud funkce vrací číslo, porovnávejte s přesností na desetinná místa, pokud vrací řetězec, porovnávejte přesně.

Nejčastější chyby při psaní prvního testu První past: testy, které závisí na pořadí, ve kterém se spouštějí. Jeden test mění globální stav, druhý na to spoléhá. To je cesta do pekla. Testy musí být izolované. Pokud testujete funkci, která pracuje s databází, použijte čistou testovací databázi, kterou po každém testu smažete. Druhá past: testování příliš mnoha věcí najednou. Test, který ověřuje tři různé scénáře, je těžké opravit, když selže. Rozdělte ho na tři samostatné testy. Třetí past: testování interních detailů, jako jsou privátní proměnné. Testujte veřejné API funkce, ne to, jak zařídit malou kuchyni je implementovaná.

Na co si dát při nasazení pozor Nejčastější chyba bývá přenos SQL myšlení do NoSQL. Mnoho vývojářů se snaží využít dokumentové databáze k modelování vztahů mezi entitami jako v SQL: vytvářejí separátní kolekce a spojují je přes reference. To je sice možné, ale zabijete tím hlavní výhodu – rychlost. V NoSQL byste měli data ukládat tak, jak je budete číst. Pokud potřebujete zobrazit příspěvek spolu s autorem, uložte informace o autorovi přímo do dokumentu příspěvku. Tím se vyhnete drahým JOINům, které v NoSQL neexistují. Mnohem lepší je denormalizace: obětujete konzistenci dat, ale získáte rychlost a jednoduchost.
Nejdřív si udělejte pořádek v hlavě: co je NoSQL vlastně zač? Pod tímto označením se skrývá několik rodin – dokumentové (např. MongoDB), key-value (např. Redis), sloupcové (např. Cassandra) a grafové (např. Neo4j). Každá z nich řeší jiný problém. Dokumentový model je vhodný rady pro rekonstrukci obsahově bohatá data s proměnlivou strukturou, key-value pro rychlou čtení podle klíče, sloupcová úložiště pro obrovské analytické dotazy a grafové databáze pro data s hustou sítí vztahů. Pokud si nejste jisti, který typ je pro vás vhodný, začněte dokumentovým modelem – je nejuniverzálnější a nejbližší běžnému JSON formátu.

Další pastí je transakční zpracování. Relační databáze mají ACID transakce, které zajišťují, že buď proběhne celá operace, nebo se nic nestane. V NoSQL se setkáte s tzv. BASE modelem (Basically Available, Soft state, Eventually consistent) – tedy s tím, že data nemusejí být okamžitě konzistentní, ale časem se sjednotí. To je důvod, proč NoSQL není ideální pro bankovní systémy nebo rezervační systémy, kde potřebujete absolutní jistotu. Pokud takovou aplikaci stavíte, raději zůstaňte u SQL. Pokud ale jdete do NoSQL, připravte se na to, že musíte sami vyřešit, jak se vypořádáte s nekonzistencí – třeba tak, Http://Miklagaard.No/Index.Php?Title=Jak_RozuměT_NoSQL_A_Kdy_Ho_Nasadit že v aplikaci kontrolujete stav a případně opakujete operace.

CSS připojíte správně, když dodržíte tři pravidla Propojení CSS s HTML uděláte třemi způsoby. Nejpoužívanější je externí soubor, který odkážete v hlavičce pomocí značky . Interní styly píšete přímo do

If you have any type of inquiries concerning where and just how to use Rekonstrukce Bytu, you can call us at our web page.