#1 Od: Paľo Delinčák, November 30th, 2013 03:29
Zaujíma ma, akým spôsobom sa majú ukladať API kľúče (poprípade iné tajné veci - heslá, a podobne) v testoch API?
API má verejnú a neverejnú časť (pri neverejnej je potrebný API kľúč, ktorý sí môže vygenerovať každý používateľ po zaregistrovaní na web).
Dôvod prečo sa na to pýtam je ten, že API wrapper, ktorý sa chystám napísať bude verejný.
Díkes za odpovede ;-)
#2 Od: Patrik Jíra, November 30th, 2013 08:01
Co třeba stejně, jako to je na produkci? Tzn. dobře zdokumentovanej example konfigurák, co si kdokoliv nastaví podle svojeho testovacího api přístupu.
#3 Od: Patrik Jíra, November 30th, 2013 08:02
Další (a architektonicky správná) odpověď je api při testech nehitovat, všechny jeho volání si namockovat.
#4 Od: Patrik Jíra, November 30th, 2013 08:02
Last but not least: http://apiary.io/
#5 Od: Paľo Delinčák, November 30th, 2013 09:42
Tým mockovaním máš na mysli niečo v štýle, že si vyberiem stable verziu API, z každého dotazu si vyberiem response a testujem to na tom? Čiže pri spustení testov nedám žiaden fyzický dotaz na API ale pracujem s tými namockovanými responsami?
#6 Od: Patrik Jíra, November 30th, 2013 09:49
#7 Od: Paľo Delinčák, November 30th, 2013 10:07
Už mi to dáva zmysel. Vďaka.
Aj jedna alternatíva:
https://github.com/bblimke/webmock
#8 Od: Patrik Jíra, November 30th, 2013 12:34
samo, možností je spousta, ten fakeweb mi přišel jako nejnázornější. obvykle se používá nějaká stubbovací knihovna - Mocha nejvíc.
#9 Od: Josef Šimánek, December 4th, 2013 07:57
#10 Od: Josef Šimánek, December 4th, 2013 07:57
Případně pro lenochy https://github.com/vcr/vcr. (nemůžu sem dát tři odkazy do jednoho příspěvku, úžasný)
#11 Od: Josef Šimánek, December 4th, 2013 07:58
To už raději snad http://deployd.com/.
#12 Od: Patrik Jíra, December 6th, 2013 12:42
Obecně je hitování byť i testovací verze externího API při testech bráno, jako špatnej nápad. Nějaký výhody to ale přecejen může mít, například tě padající testy upozorněj, že změnili chování API (což se bohužel může stát...).
Jinak sem právě narazil na totok: http://robots.thoughtbot.com/how-to-stub-external-services-in-tests Může zas trochu víc objasnit záležitost ;)
#13 Od: Josef Šimánek, December 7th, 2013 10:34
To je ale otázka testů. Jestli testuješ jejich API, části svojeho kódu nebo celkově integraci aplikace.
#14 Od: Patrik Jíra, December 8th, 2013 11:10
Of course. Ideální (imho) mít normální mockovaný testy a třeba jeden integrační (i klidně oddělenej od celý suity) test, co mi skutečně hitne testovací verzi API (tim pádem pak vim o změnách).
Většinou se dívám na testy jako na část projektu, která mi zaručí, že se kód alespoň rámcově a v těch hlavních use casech chová tak, jak má.
Systém běží na Discourse, nejlepší zážitek je se zapnutým JavaScriptem