ADH secretion | Renal system physiology | NCLEX-RN | Khan Academy
Obsah:
Prioritou jsou principy architektury orientované na služby na adrese Inverzní. To znamená, že máme malé, udržovatelné komponenty s jasně definovanými povinnostmi. Komunikují mezi sebou (většinou) prostřednictvím reprezentačních státních převodů, nebo REST, API.
To poskytuje flexibilitu a sloužilo nám dobře s výjimkou jedné významné stránky: Testování. Při testování je třeba se vyvarovat:
- Závislost na externích službách běžících na stejném počítači.
- Pomalé testy.
Protože aplikace neodmyslitelně závisí na externích službách, je důležité mít pro tyto závislosti zavedenou strategii testování.
Nedávno jsme začali používat Bypass a vysvětlím, jak jsme tam dorazili a konkrétně jak ho používáme.
Minulost
Vysmívat metody a vrátit některá příkladná data takto:
To bylo (a věřím, že je) „cesta“ ve světě Ruby / Rails. Bohužel, toto podporuje špatné chování, jak to zde nejlépe vysvětluje José Valim.
Pak jsme začali používat ExVCR, což je skvělá knihovna, ale má podobné nevýhody jako mock / stubs: Podporuje lenost a nepodporuje oddělení zájmů, které jsou kritické pro dobře definované API. ExVCR umožňuje „nahrávat“ a „přehrávat“ reálná data. Integrace je velmi snadná (včetně několika řádků ve vašem testu a vše ostatní je o ně postaráno). Ale v ideálním případě musíte přemýšlet o vnějších závislostech v testech, ne abstraktně. Pro scénáře může být stále životaschopnou volbou, pokud by mělo být testováno chování koncového bodu s minimální režií (používáme jej pro testování hovorů služby Amazon AWS Services jako S3).
Zadejte adaptéry
Adaptéry fungují skvěle a podporují jednání o smlouvách API a jasně definovaných komunikačních hranicích. Tento přístup stále používáme, zejména když je Adaptér složitější (jako zásuvka JSON-RPC).
Takto může vypadat adaptér:
Pro jednoduché koncové body HTTP se však adaptéry jeví jako hodně práce a mají hlavní nevýhodu: ponechávají knihovny, které spotřebovávají, z testovací rovnice. Pokud se něco změní v knihovnách HTTP nebo JSON, testy to nezachytí. Množství kódu kritického pro výrobu, který tento přístup nevyzkouší, je nepřijatelné.
Současnost a budoucnost
Bypass nám umožňuje spustit velmi jednoduchý webový server v testech, které simulují externí služby, které používáme.
Nyní můžeme otestovat celý zásobník, včetně knihovny HTTP, knihovny kódování / dekódování JSON a ověřovacích mechanismů. Bypass README je dobře napsaný, takže budu šetřit detaily implementace. Nicméně, mírně změníme způsob, jakým je používáme, abychom udrželi testy stručné a srozumitelné:
Nejprve chceme někdy zavolat na Facebook, když jsou testy spuštěny jako úplná integrační sada. Děláme to nepravidelně, abychom zajistili, že rozhraní API služby Facebook stále funguje podle našich očekávání. Přidání
- zahrnovat integraci
na
mix test
neanalyzuje API, ale místo toho volá na externí službu (řádky 5, 7).
Jsme explicitní, když simulujeme požadavky na externí služby, takže každý test, který používá Bypass, musí mít
@tag facebook_bypass
(řádek 7).
Konečně
handle_fb
funkce (řádky 30–39) se volají (vzhledem k tomu, že
request_path
zápasy). Mám rád přizpůsobení v hlavě funkce, protože dává jasně najevo, na kterou cestu reagujeme a která nám umožňuje definovat různé funkce pro různé cesty.
Takže Bypass běží pouze na testech označených
@tag: bypass
a když neběží naše integrační sada. Ještě jedna věc, kterou děláme při nastavování Bypassu, je umožnit tagu projít id stránky (řádky 8, 20). Tak tady je, jak test, který používá Bypass vypadá v celé své slávě:
Jak vidíte,
facebook_bypass
značce, že simulujeme API (pokud jsme v integračním režimu). Umožňuje nám předávat informace do simulovaného rozhraní API a je velmi snadné znovu použít stejnou konfiguraci Bypass pro různé testy.
Doufám, že vám to pomůže otestovat externí rozhraní API. Máte-li další otázky, můžete mě najít na Twitteru (viz níže).
Zde je návod, jak získat lepší noční spánek s jedním novým polštářem
Pokud jste hledali řešení pro lepší noční spánek, možná budeme mít odpověď s tímto novým polštářem. Není to jen jako polštář, ale spíše chlazení, boj s bakteriemi, luxusní polštář. Tento super útulný Bamboo Memory Foam Pillow, který slouží jako dezinfekční prostředek a naplněný aloe vera, vás nebude chtít ...
Snapchat nyní prodává vlastní čočky: Zde je návod, jak si vytvořit svůj vlastní
Nová funkce vydaná ve čtvrtek umožňuje uživatelům vytvářet vlastní objektivy smícháním a přizpůsobením předem vytvořené grafiky pomocí uživatelsky generovaného textu.
Tato aplikace vám pomůže najít nejbližší automatizované externí defibrilátory
Je dobře známo, že automatizované externí defibrilátory (AED) mohou pomoci zachránit životy lidí, kteří jdou do náhlé zástavy srdce. Není to však vždy dobře známé, kde můžete najít AED mimo zdravotnické prostředí. Nyní se může změnit nová aplikace nazvaná AED-SOS. Dne 9. listopadu 2015, výzkumníci z Americké H ...