САМЫЙ ЛУЧШИЙ В МИРЕ 3Д ПРИНТЕР АНАЛОГОВ НЕ СУЩЕСТВУЕТ Flying Bear Ghost 5
Sadržaj:
Prioritet je princip arhitekture orijentiran na uslugu na adresi Inverzan, To znači da imamo male, održive komponente s jasno definiranim odgovornostima. Oni komuniciraju jedni s drugima (uglavnom), putem predstavničkog prijenosa stanja ili REST-a, API-ja.
To osigurava fleksibilnost i dobro nam služi uz izuzetak jednog značajnog aspekta: Testiranje. Prilikom testiranja treba izbjegavati:
- Ovisnost o vanjskim uslugama koje se izvode na istom stroju.
- Spori testovi.
Budući da se aplikacije inherentno oslanjaju na vanjske usluge, ključno je imati strategiju testiranja za te ovisnosti.
Nedavno smo počeli koristiti obilaznicu i objasnit ću vam kako smo stigli i konkretno kako ga koristimo.
Prošlost
Ismijavajte metode i vratite neke primjere podataka poput ovog:
To je bio (i vjerujem da je još uvijek) “put do“ u svijetu Ruby / Railsa. Nažalost, to potiče loše ponašanje koje najbolje objašnjava ovdje José Valim.
Zatim smo počeli koristiti ExVCR, koji je velika biblioteka, ali ima slične nedostatke kao i mock / stubs: potiče lijenost i ne potiče razdvajanje briga koje su kritične za dobro definirane API-je. ExVCR omogućuje snimanje i reprodukciju real-live podataka. Vrlo se lako integrira (uključujući nekoliko redaka u testu i za sve ostalo se brine). No, u idealnom slučaju morate razmišljati o vanjskim ovisnostima u testovima, a ne ih izdvajati. To bi još uvijek mogao biti izvediv izbor za scenarije kada bi ponašanje krajnje točke trebalo testirati s minimalnim opterećenjem (koristimo ga za testiranje poziva na Amazonove AWS usluge kao što je S3).
Unesite adaptore
Adapteri rade sjajno i promiču promišljanje oko API ugovora i jasno definirane granice komunikacije. Još uvijek koristimo ovaj pristup, osobito kada je Adapter složeniji (kao JSON-RPC socket).
Ovako izgleda adapter:
Ali za jednostavne HTTP krajnje točke, adapteri izgledaju kao puno posla i imaju veliki nedostatak: oni napuštaju knjižnice koje konzumiraju iz jednadžbe testiranja. Ako se nešto promijeni u HTTP ili JSON knjižnicama, testovi ga neće uhvatiti. Količina kritičnog produkcijskog koda koji nije ispitan ovim pristupom je neprihvatljiva.
Sadašnjost i budućnost
Bypass nam omogućuje da pokrenemo vrlo jednostavan web poslužitelj u testovima koji simuliraju vanjske usluge koje koristimo.
Sada možemo testirati cijeli stack, uključujući HTTP knjižnicu, JSON knjižnicu za kodiranje / dekodiranje i mehanizme provjere autentičnosti. Obilaznica README je dobro napisana, tako da ću poštedjeti detalje implementacije. Međutim, neznatno mijenjamo način na koji ga koristimo kako bismo testove saželi i čitali:
Prije svega, ponekad želimo pozvati Facebook kada se testovi pokreću kao kompletni paket za integraciju. To radimo neredovito kako bismo osigurali funkcioniranje Facebook API-ja prema našim očekivanjima. Dodavanje
- uključiti integraciju
do
mješoviti test
ne simulira API, već umjesto toga poziva vanjsku uslugu (redovi 5, 7).
Mi smo eksplicitni kada simuliramo zahtjeve za vanjskim uslugama tako da svaki test koji koristi premosnicu mora imati
@tag facebook_bypass
(redak 7).
Konačno,
handle_fb
funkcija (linije 30-39) se naziva (s obzirom na to da je
request_path
odgovara). Volim uparivanje u funkcijskoj glavi jer ona eksplicitno određuje put na koji reagiramo i omogućuje nam definiranje različitih funkcija za različite putove.
Dakle, zaobići se pokreću samo testovi s oznakom
@tag: zaobići
i kada ne vodimo integracijski paket. Još jedna stvar koju radimo prilikom postavljanja obilaznice je da oznaka prođe id stranice (redovi 8, 20). Evo kako test koji koristi obilazak izgleda u svoj njegovoj veličini:
Kao što možete vidjeti
facebook_bypass
oznaka čini izričito da simuliramo API (osim ako smo u načinu integracije). Omogućuje nam prosljeđivanje informacija simuliranom API-ju, a vrlo je lako ponovno koristiti isti Bypass config za različite testove.
Nadam se da će vam to pomoći u testiranju vanjskih API-ja. Možete me pronaći na Twitteru (vidi dolje) ako imate dodatnih pitanja.
Wells Fargo testira skeniranje očiju kako bi zamijenio zaporku
Uskoro ćete možda morati ponuditi svoju mrežnicu prije pristupa bankovnom računu. Biometrija više nije stvar udaljenih znanstvenofantastičnih trilera. Zapravo, banke poput Bank of America i JPMorgan Chase već su svojim klijentima omogućile prijavu na svoje račune s mobilnih uređaja s otiscima prstiju. Za važna poduzeća ...
Donald Trump proveo je čitavih 15 sekundi u tehnologiji u današnjem govoru vanjske politike
Donald Trump održao je svoj drugi službeni govor o vanjskoj politici danas i, nakon što je gomilu čekao oko 30 minuta, Trump je govorio oko 40 minuta. Tijekom tih 40 minuta, spomenuo je tehnologiju točno jednom. “Moramo razmišljati pametnije o područjima gdje je naša tehnološka superiornost - a nitko ne dolazi ...
Zašto je unutarnja ljepota važnija od vanjske ljepote?
Je li unutarnja ljepota nešto što ružni ljudi kažu za sebe da se osjećaju bolje? Otkrijte pravu istinu o unutarnjoj ljepoti koja će otkriti drugu stranu.