←  Nazad

Je li Angular testiranje poželjno?

Testiranje frontenda je testiranje  funkcionalnosti i upotrebljivosti aplikacije, uključujući i korisničko sučelje (GUI). Prije nekoliko mjeseci, prilikom istraživanja o Angular testiranju, shvatila sam da malo ljudi koristi Angular testiranje. Angular je open source platforma za fontend web aplikacije, a baziran je na TypeScriptu te je zbog toga moguće i testiranje.

 

Što je Angular testiranje?

 

Za testiranje Angulara programer koristi dedicirane pakete za testiranje. Kada programer pokreće testove tada je pokrenuto testno okruženje, a ne razvojno. Nakon istraživanja o Angular testiranju odmah postaje jasno da je to velika tema te je potrebno vrijeme da se nauči „testni jezik“.

 

Prednosti testiranja

 

Poboljšanje dizajna i refaktoriranje koda

 

Kada programer piše testove za svoj programski kod često si postavlja pitanje „Zašto sam to napisao na takav način?“. Osim toga teško objektivno može sagledati kod koji napiše. Ponekad primjećuje dijelove koda koji se ponavljaju i dolazi do spoznaje da mora napisati kod koji će se koristiti na više mjesta (refaktoriranje koda). Nakon jednostavnog refaktoriranja koda pokreće testove i pogledava ima li bugova u kodu. Može se i ‘poigrati‘ s refaktoriranjem testova.

 

Improving the design and refactoring the code

 

Nove funkcionalnosti bez pogoršanja postojećeg koda

 

U slučaju razvijanja novih funkcionalnosti, kao što je primjerice proširenje postojeće funkcionalnosti, developer na jednostavan način može provjeriti je li postojeći kod i dalje funkcionalan. To može uključivati pokretanje testova u kojima se vidi je jesu li novi bugovi napravljeni.

 

Testovi su dobra dokumentacija

 

Svrha metoda i klasa se najbolje može dokazati pokretanjem testova i identifikacijom slučaja koji su pokriveni. Naravno, testovi nisu konačna referenca na dokumentaciju, ali mogu biti korisni za bolje razumijevanje koda.

 

Jasmine i Karma

 

Unit testovi omogućavaju testiranje manjih izoliranih dijelova koda. Jasmine i Karma su alati koje programeri mogu upotrijebiti za testove, a preporučuju ih i na službenoj stranici Angular-a.

 

angular-testing-Jasmine-and-Karma

 

Jasmine je testni framework koji opisuje testove na način koji je ljudima jednostavan za razumijevanje, iako nisu programeri. Karma je pokretač testova. Kada se pokreće test s Karmom, Karma rukovodi procesom otvaranja web preglednika (lako se može konfigurirati ako se želi odabrani preglednik), pokreće testove i vraća rezultat testova. Nije potrebno znanje unutarnjeg procesa Karme jer Angular CLI rukovodi sa konfiguracijom Karme za nas. Jednostavno je i radi bez problema.

 

Što možemo testirati?

 

Možemo testirati komponente, servise i navigaciju naših Angular aplikacija. Za nas, najzanimljiviji dio testiranja u unit testiranju je testiranje DOM-a. Možemo simulirati korisničku interakciju sa aplikacijom i dodavati događaje u naše unit testove.

 

Protractor je alat koji omogućava end-to-end (E2E) testiranje. E2E testiranje je najveća razina testiranja. U takvom testiranju, može se uključiti nekoliko komponenti da se jasno vidi mogu li  one zajedno funkcionirati. Međutim, pisanje E2E testova je teško. Testovi se lako pokvare (ne prolaze) i lako mogu demonstrirati scenarij ‘ako nešto pođe po zlu‘.

 

ekobit-protractor-angular

 

Mogu se lako omogućiti i izvješća o pokrivenosti koda (eng. code coverage reports). Takva izvješća otkrivaju dijelove koda koji možda nisu pokriveni unit testovima, Drugim riječima, ako postoji kod koji nije testiran, lako ga možemo uočiti testovima samo moramo pokrenuti izvješća o pokrivenosti koda.

 

Kada je performansa glavni problem tima,  pitanje koje se otkriva je vrijeme kada će to postati velik problem. Kada se ukuca komanda ng build –prod, mogu se vidjeti veličine paketa koje preglednik dobiva s naših servera. Možemo i analizirati naše Angular pakete i možda detektirati velike third-party pakete koji smo zaboravili ukloniti (koristi webpack-bundle-analyzer).

 

Je li Angular testiranje poželjno?

 

Mnogo se toga može testirati u Angular-u. Važno je ne testirati samo dobre scenarije. Također i loši scenariji su pogodni za testiranje jer se mogu pojaviti u aplikaciji s vremena na vrijeme. Svi programeri koji koriste Angular trebali bi, s vremena na vrijeme, razmišljati o testiranju i kako da poboljšaju svoj kod – posebno logiku koja je svojstvena njihovom kodu te nije vidljiva drugima.

Anabel Li Kečkeš
Latest posts by Anabel Li Kečkeš (see all)

31 srpnja, 2020

Želite podijeliti sadržaj?

Možda će biti zanimljiv Vašim prijateljima.

Mogle bi vam biti zanimljive i druge teme.