Tartalomjegyzék
Angular - End-to-end teszt
- Szerző: Sallai András
- Copyright © Sallai András, 2023
- Web: https://szit.hu
Egység tesztek
A Karma és a Jasmine a JavaScript kódra összpontosítanak, amit egy elszigetelt tesztkörnyezetben futtatnak. Szeretnénk olyanokat is tesztelni, hogy egy kattintásra megtörténik-e valami.
Ezt általában kézi teszteléssel végezzük. Egy dedikált tesztelő egy teszt terv szerint végigjárja a teszteket.
A kézi tesztek lassúak és nem mindig ismételhetők meg.
Olyan automatizált tesztekre van szükségünk, ami a felhasználói oldalról közelíti meg az alkalmazást. Ezeket nevezzük End-to-end vagy E2E teszteknek.
Az E2E tesztek gyakran lassúk és hibásak, de ezek tájékoztatnak minket arról, hogy valóban működi-e az alkalmazás.
Meghatározott környezet
Az adatbázist előre elkészített hamis adatokkal töltjük fel, amit utána törlünk, azaz az adatbázist kezdeti állapotba hozzuk.
A végpontok közötti tesztek működése
A teszt utánozza a felhasználói kommunikációt az alkalmazással, másként szólva, szimulálja a felhasználói műveleteket.
Például a teszt kitölt egy űrlapot és kattint a küldés gombra.
E2E keretrendszerek
Kétféle van:
- WebDriver-t használ
- nem használ WebDriver-t
WebDriver
A WebDriver lehetővé teszik a böngésző távoli irányítását. Ilyen a Selenium böngésző automatizáló projekt, amit a W3C fejleszt.
Néhány WebDriver parancs:
- navigáljon egy URL-re
- Kattintson egy elemre
- JavaScript kód végrehajtása
- Billentyűzet bevitel küldése egy űrlapelembe
- Egy elemről információkérés
A tesztek akár több böngészőben egyszerre is futtathatók.
Az Angular
A 12-es verzióig az Angular a Protactort használta alapértelmezett teljes körű tesztelő keretrendszernek. A 12 verziótól azonban elavult. A 12 verziótól nincs alapértelmezetten megadott keretrendszer. Telepítenünk kell egyet.
A következőket használhatjuk:
- Cypress
- Nightwatch
- WebdriverIO
Ha futtatjuk az ng e2e parancsot és még nincs telepítve egyik sem:
ng e2e Cannot find "e2e" target for the specified project. You should add a package that implements end-to-end testing capabilities. For example: Cypress: ng add @cypress/schematic Nightwatch: ng add @nightwatch/schematics WebdriverIO: ng add @wdio/schematics More options will be added to the list as they become available.
A ng e2e röviden: ng e.