< Angular End-to-end teszt

Angular - End-to-end teszt

Szerző: Sallai András

Copyright © Sallai András, 2023

Licenc: CC Attribution-Share Alike 4.0 International

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.