[[oktatas:web:angular:angular_end-to-end_teszt|< Angular End-to-end teszt]] ====== Angular - End-to-end teszt ====== * **Szerző:** Sallai András * Copyright (c) Sallai András, 2023 * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|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.