Písať end-to-end špecifikácie je vždy zaujímavé a zábavné. Nehovoriac o tom, že je potrebné urobiť proces refaktorovania kódu bezpečnejším - fungujú ako detektory chýb. Tieto scenáre sú často jedinou dokumentáciou funkcií v kódovej základni.
Stretávame sa však aj s nepríjemnosťou: niekedy nám trvá príliš dlho, kým získate dostatočné nastavenie údajov, ako aj zvládnutie závislostí CSS a mnohých zmien vykonaných v CSS a HTML. Rovnako nemusí byť také ľahké naraz napísať čitateľný a udržiavateľný kód.
Našťastie sa tieto problémy dajú vyriešiť. Dnes vám chceme povedať o niekoľkých jednoduchých technikách, pomocou ktorých môžete zvládnuť aspekty uvedené vyššie. Spočiatku boli tieto scenáre zostavené pre Protractor, ale dokonale sa zhodujú s akýmkoľvek iným testovacím rámcom, s ktorým by ste chceli pracovať.
Nižšie nájdete jednoduchý príklad značenia obsahujúci súvisiace špecifikácie. Teraz ich skúsme upgradovať.
Špeciálne testovanie osobitných atribútov
Vývojári často pracujú oddelene s komponentami CSS alebo HTML a AngularJS. V dôsledku toho sa počas vykonávania zmien značiek vyskytuje veľa závislostí od spec. Je to skutočne veľký problém, ktorému čelí takmer každý tím. Napríklad, keď front-end technik zmení názov triedy úžitkovej triedy alebo použije inú triedu v súlade so zmenami CSS, môže náhodne zlomiť špecifikácie.
Tento problém samozrejme môžete vyriešiť neustálym sledovaním selektorov end-to-end špecifikácií, čo však nie je skutočne pohodlné - musíte si skontrolovať všetky vykonané zmeny značiek. Ďalším spôsobom je použitie sémantiky stabilného modelu na každú súčasť. Ale to si tiež vyžaduje príliš veľa úsilia. Podľa nášho názoru riešením je mať konkrétny atribút používaný iba testovacím rámcom:
Tieto atribúty okolo značky sa môžu javiť ako zastarané. Na druhej strane nám táto technika prináša množstvo výhod. Pozrime sa na to:
Správa objektov stránok a komponentov
Objekty stránky sa bežne používajú pri písaní end-to-end testov. Vďaka tomu sú príklady špecifikácií oveľa pohodlnejšie na opätovné použitie a údržbu. Nižšie si pozrite, ako sú definované jednoduché objekty stránky pre špecifikácie:
Teraz sú príklady testov omnoho čistejšie bez selektorov CSS.
Maliar je teraz definovaný ako:
Výsledkom je, že máme plne opätovne použiteľné príklady špecifikácií, ktoré nezávisia od akýchkoľvek zmien v CSS, ako aj funkčné DSL, ktoré definuje triedy stránok alebo komponentných objektov. Takže teraz viete, ako uľahčiť vaše komplexné testovanie.
Článok napísal Vývojári Ruby on Rails od spoločnosti Rails Ware - firma poskytujúca outsourcing so sídlom na Ukrajine, USA a Poľsku.