Když API přestane odpovídat, aneb jak se ptát Postmana správně
První požadavek vytvoříte snadno: zvolte metodu (GET, POST, PUT, DELETE), zadejte URL a odešlete. Tady ale většina začátečníků dělá zbytečnou chybu – zapomenou na záložku Authorization. Pokud API vyžaduje token, bez něj dostanete 401. V Postmanu nastavte typ autorizace (např. Bearer Token nebo Basic Auth) a token vložte do příslušného pole. Pozor na to, že tokeny často expirují. Proto si do proměnných uložte aktuální hodnotu a při testech ji aktualizujte.
Poslední oblastí, kterou stojí za to zmínit, je parametrizace testů. Často potřebujete ověřit stejnou funkci s více sadami vstupů. Místo psaní deseti podobných funkcí použijte dekorátor @pytest.mark.parametrize, který přijímá názvy argumentů a seznam hodnot. Každá kombinace se pak spustí jako samostatný test, a když něco selže, máte jasnou zprávu, která varianta je problematická. Tato technika výrazně zkracuje kód a zvyšuje pokrytí. Až si osvojíte tyto základy, pytest se stane vaším spolehlivým pomocníkem, který vám dá jistotu, že změny v kódu nerozbijí stávající funkčnost.
Typickou pastí, do které začátečníci spadají, je testování implementačních detailů místo chování. Když testujete, že funkce volá jinou funkci s určitými argumenty, svážete test s vnitřní strukturou kódu. Jakmile změníte implementaci, byť jen drobně, test selže, přestože funkce stále funguje správně. Mnohem robustnější je testovat výstup a vedlejší efekty – tedy to, co volající skutečně vidí. Například místo kontroly, že funkce ukládacího modulu volá metodu save, raději ověřte, že se soubor vytvoří s očekávaným obsahem. Tento přístup vám umožní později měnit vnitřní strukturu bez nutnosti přepisovat testy.
Složitější scénáře vyžadují práci s takzvanými fixture. Fixture je funkce, která připravuje data nebo stav prostředí před testem. Užitečná je zejména tehdy, když potřebujete vytvořit dočasný soubor, připojit se k databázi nebo naplnit seznam testovacími hodnotami. Definujete ji pomocí dekorátoru @pytest.fixture a pak ji předáte jako parametr testovací funkci. Typickou chybou začátečníků je umístit fixture do stejného souboru jako test, což vede k opakování kódu napříč soubory. Řešením je konfigurační soubor conftest.py, který pytest automaticky načte a zpřístupní definované fixture všem testům v daném adresáři. Pokud se vám testy začnou opakovat nebo se stanou nepřehlednými, je to první místo, kde hledat příčinu.
Na závěr: TypeScript se vyplatí adoptovat postupně. Pokud máte existující projekt, začněte s jedním souborem a postupně rozšiřujte. Sledujte, jaké chyby vám kompilátor hlásí, a opravujte je systematicky. Po měsíci zjistíte, že většina běžných chyb zmizela a vy se soustředíte na složitější logiku. Nenechte se odradit prvním dny – učení typů je investice, která se vrátí rychleji, než čekáte.
První kroky s pytestem jsou překvapivě přímočaré. Stačí napsat funkci začínající slovem test_ a uvnitř použít obyčejný assert. Žádné třídy, žádné speciální metody. Pokud chcete otestovat funkci, která sčítá dvě čísla, vytvoříte soubor test_calc.py a do něj napíšete: def test_soucet(): assert soucet(2, 3) == 5. Spuštění provedete příkazem pytest v terminálu, a pytest automaticky najde všechny soubory s předponou test_ a funkce test_ v aktuálním adresáři. To je první věc, na kterou si zvykněte – pojmenování souborů a funkcí není libovolné, ale řídí se konvencemi.
Začněte prakticky. Nainstalujte Docker a ověřte instalaci příkazem docker --version. Pak si vytvořte adresář a v něm soubor Dockerfile. Do něj napište první instrukci: FROM node:20-alpine pro JavaScript, FROM python:3.12-slim pro Python. Tím určíte základní obraz. Další řádek WORKDIR /app nastaví pracovní adresář. Poté zkopírujte zdrojové soubory přes COPY . . a spusťte instalaci závislostí. Pro Node to bude RUN npm install, pro Python RUN pip install -r requirements.txt. Nakonec definujte příkaz, který se spustí: CMD ["node", "index.js"] nebo CMD ["python", "app.py"].
Při práci s knihovnami třetích stran narazíte na situaci, kdy chybí typy. Mnoho populárních balíčků má typy v @types/ název-balíčku, ale ne všechny. Pokud typy chybí, nepište si hned vlastní – zkuste nejprve balíček @types/… vyhledat. Když opravdu neexistují, vytvořte si deklaraci v souboru .d.ts, kde typy popíšete ručně. Tento soubor pak stačí přidat do tsconfig.json. Vyhnete se tak použití any a budete mít lepší podporu osvětlení v obýváku editoru.
jak zařídit malou kuchyni psát testy, které se nebudou rozpadat při každé změně Kritickým momentem je testování kódu, který pracuje s externími službami – ať už jde o HTTP požadavky, čtení souborů nebo systémový čas. Přímé volání reálné služby v testu způsobí, že test je pomalý, nespolehlivý a závislý na okolním prostředí. Pytest nabízí vestavěnou podporu pro monkeypatch, kterým můžete dočasně nahradit funkci nebo atribut objektu. Například místo skutečného volání requests.get v testu nahradíte tuto funkci falešnou, která vrací předpřipravenou odpověď. Tím zajistíte, že test proběhne rychle a bez přístupu k internetu. Důležité je, aby monkeypatch byl použit jako parametr testovací funkce, a pytest se postará o jeho automatické uklizení po skončení testu. Bez této techniky se neobejdete, pokud nechcete psát testy, které selhávají jen kvůli výpadku sítě nebo změně odpovědi API.
Should you adored this information along with you want to obtain guidance regarding Https://Wiki.Man-Noir.Com/ kindly check out our own web-site.