Email рассылка - добавляем smtp релеи
Kazalo:
Prednostno obravnavamo načela arhitekture storitveno usmerjene arhitekture Inverse. To pomeni, da imamo majhne, vzdržljive komponente z jasno opredeljenimi odgovornostmi. Med seboj komunicirajo (večinoma) prek predstavniškega prenosa države ali API-jev REST.
To zagotavlja prožnost in nam je dobro služilo z izjemo enega pomembnega vidika: Testiranje. Pri testiranju se je treba izogibati:
- Odvisnost od zunanjih storitev, ki se izvajajo na istem stroju.
- Počasni testi.
Ker so aplikacije odvisne od zunanjih storitev, je ključnega pomena imeti strategijo testiranja za te odvisnosti.
Pred kratkim smo začeli uporabljati Bypass in razložil bom, kako smo prispeli tja in kako ga uporabljamo.
Preteklost
Posnemite metode in vrnite nekaj primernih podatkov, kot je ta:
To je bil (in verjamem, da je še vedno) "pot do" v svetu Ruby / Rails. Na žalost to spodbuja slabo vedenje, kar je najbolje razložil José Valim.
Nato smo začeli uporabljati ExVCR, ki je velika knjižnica, vendar ima podobne pomanjkljivosti kot mock / stub: Spodbuja lenobe in ne spodbuja ločevanja vprašanj, ki so ključnega pomena za dobro opredeljene API-je. ExVCR omogoča "zapisovanje" in "predvajanje" real-live podatkov. Zelo enostavno ga je integrirati (vključno z nekaj vrsticami v vašem testu in vse ostalo je poskrbljeno). V idealnem primeru pa morate v testih razmisliti o zunanjih odvisnostih, ne pa jih izvleči. Mogoče je še vedno izvedljiva izbira za scenarije, ko bi bilo treba obnašanje končnih točk preskusiti z minimalno obremenitvijo (uporabljamo ga za testiranje klicev v storitve Amazon AWS Services, kot je S3).
Vnesite adapterje
Adapterji delujejo odlično in spodbujajo premislek o API pogodbah in jasno določenih komunikacijskih mejah. Ta pristop še vedno uporabljamo, še posebej, če je Adapter bolj zapleten (kot je vtičnica JSON-RPC).
Tako lahko izgleda Adapter:
Toda za preproste končne točke HTTP se zdi, da so adapterji veliko dela in imajo veliko pomanjkljivost: knjižnice, ki jih porabijo, zapustijo iz enačbe za testiranje. Če se spremembe v knjižnicah HTTP ali JSON spremenijo, jih testi ne bodo ujeti. Količina proizvodno kritičnega kodeksa, ki ga ta pristop ne preveri, je nesprejemljiva.
Sedanjost in prihodnost
Bypass nam omogoča zagon zelo enostavnega spletnega strežnika v testih, ki simulirajo zunanje storitve, ki jih uporabljamo.
Zdaj lahko preizkusimo celoten sklad, vključno s knjižnico HTTP, knjižnico za kodiranje / dekodiranje JSON in mehanizmi za preverjanje pristnosti. Bypass README je dobro napisan, zato bom rezerviral podrobnosti izvajanja. Vendar pa rahlo spreminjamo, kako ga uporabljamo, da bi bili testi jedrnati in berljivi:
Prvič, včasih želimo poklicati na Facebook, ko se testi izvajajo kot popolna integracijska zbirka. To počnemo neredno, da zagotovimo delovanje API-ja za Facebook po naših pričakovanjih. Dodajanje
- vključuje integracijo
do
test mešanja
ne simulira API-ja, ampak kliče zunanjo storitev (vrstice 5, 7).
Izrecno smo, ko simuliramo zahteve za zunanje storitve, tako da mora vsak preskus, ki uporablja Bypass, imeti
@tag facebook_bypass
(vrstica 7).
Končno,
handle_fb
Funkcija (vrstice 30–39) se imenuje (glede na to, da
request_path
tekme). Všeč mi je ujemanje v funkcijski glavi, saj omogoča eksplicitno pot, na katero se odzivamo, in nam omogoča, da definiramo različne funkcije za različne poti.
Bypass poteka samo s testiranimi oznakami
@tag: bypass
in ko ne vodimo integracijskega paketa. Še nekaj, kar počnemo pri nastavitvi Bypass, je, da oznaki prenese ID strani (vrstice 8, 20). Torej, tukaj je, kako preizkus, ki uporablja Bypass, izgleda v vsem svojem sijaju:
Kot lahko vidite,
facebook_bypass
Oznaka označuje, da simuliramo API (razen če smo v načinu integracije). Omogoča nam posredovanje informacij simuliranemu API-ju in zelo enostavno je znova uporabiti isto konfiguracijo Bypass za različne teste.
Upam, da vam bo to pomagalo testirati zunanje API-je. Če imate dodatna vprašanja, me najdete na Twitterju (glej spodaj).
Donald Trump je porabil celih 15 sekund o tehnologiji v današnjem govoru zunanje politike
Danes je Donald Trump podal svoj drugi uradni govor o zunanji politiki in po tem, ko je množico čakal približno 30 minut, je Trump govoril približno 40 minut. V teh 40 minutah je natančno omenil tehnologijo. »Moramo razmišljati pametneje o področjih, kjer je naša tehnološka superiornost - in nihče ne prihaja ...
Ta aplikacija vam bo pomagala najti najbližje avtomatizirane zunanje defibrilatorje
Znano je, da lahko avtomatizirani zunanji defibrilatorji (AED) pomagajo reševati življenja ljudi, ki gredo v nenaden srčni zastoj. Vendar pa ni vedno dobro znano, kje lahko najdete AED zunaj medicinskega okolja. Zdaj lahko nova aplikacija, imenovana AED-SOS, to spremeni. 9. novembra 2015 so raziskovalci pri ameriškem ...
10 načinov, kako subtilno prositi svojega partnerja, da se preizkusi
Ste se s partnerjem pogovarjali o tem, da se preizkusite za SPI? Če ne, tu je 10 subtilnih predlogov, s pomočjo katerih boste spoznali njihov status.