• Nem Talált Eredményt

Dr. Bilicki Vilmos Szoftverfejlesztés Tanszék Angulartesztelés

N/A
N/A
Protected

Academic year: 2022

Ossza meg "Dr. Bilicki Vilmos Szoftverfejlesztés Tanszék Angulartesztelés"

Copied!
40
0
0

Teljes szövegt

(1)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

Angular tesztelés

Dr. Bilicki Vilmos

Szoftverfejlesztés Tanszék

(2)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing UNI V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

Az előző következő előadás

4 Angular Biztonság

■ Legjobb gyakorlat

■ Cross-site scripting (XSS)

■ Biztonsági kontextus

■ DOM közvetlen használata és szeparáció

■ Tartalom biztonsági szabályok

■ Offline sablon fordító

■ Szerver oldali XSS védelem

■ Biztonságos értékek

■ HTTP sérülékenységek

■ Auditálás

(3)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

A előadás összefoglalója

■ CI

■ Tesztelés

■ Angular tesztelés

■ Jasmine

■ Karma

■ Protractor

(4)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing UNI V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

CI – Continous Integration

(5)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

Tesztelés

(6)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing UNI V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

Tesztelés

(7)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

Angular tesztelés

(8)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing UNI V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

Elemek

4Jasmine

4Protractor

4Karma

(9)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

Jasmine

4 Suites — describe(string, function)

■ egy címet és egy egy vagy több spec-et tartalmazó függvényt kap.

4 Specs — it(string, function),

■ egy címet és egy vagy több elvárást tartalmaző függvény.

4 Expectations —igaz/hamis értéket kiértékelő elvárások.

■ pl:expect(actual).toBe(expected)

4 Matchers — Az egyes esetekere specializált kisegítő függvények.

■ pl: toBe(expected), toEqual(expected).

■ .toEqual() – mély összevetés,

.toBe() referencia összevetése.

(10)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing UNI V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

Karma

4 Különböző futtató környzetebe tudja a teszteket futtatni és kiértékelni

4 Általáben a megadott böngészőkhöz indít egy- egy webszerert

4 A böngészők vezérlése lehet

■ manuáis a Karma szevre adott protjára csatlakozva (általában http://localhost:9876/),

■ automatikusan a

Karma indításkor adott porthoz köti a

böngészőt

(11)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

Karma -működése

4 Indítás után betölti a megfelelő beépülő modulokat és elindítja a helyi webszerverét. A websocket-re várakozó böngészők azonnal

rácsatlakoznak (újracsatlakoznak). A teszt naplózók ezeket az eseményeket már rögzítik.

4 Megadott szám böngészőt indít átadva nekik a Karma szerver URL- jét

4 Amikor a böngésző csatlakozik akkor ‘client.html’ oldalt tölti le, ez az oldal csatlakozik websocketen a szerverhez.

■ Amikor a szerver látja a csatlkozásokat utasítja a kliens ezen a csatornán a tesztek végrehajtására:

■ A kliens letölti a ‘context.html’-t melybe egy iframe-t nyit

■ Ebbe van teszt keretrendszer adapter a tesztelendő kód és a tesztkód

4 Amikor a böngésző betölti a weboldalt az onload eseménykezelő csatlakozik a klienshez a postMessage segítségével

4 A teszt kererendszer ezután fogja lefuttetni a tesztet és elköldeni az eredményeket.

4 A böngésző és a szerver között webscoketen mennek át az üzenetek amelyket a szerver oldalon ‘böngésző’ üzenetként ad tövább a

jelentés készítőknek (adapter – reporte párok pl.: karma-jasmine and

karma-jasmine-reporter)

(12)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing UNI V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

Protractor

4 Egy Node.js

keretrendszer amely Selenium/Webdriver API-kat burkolja be 4 Egy absztrakciós

rétegként

egyszerűbbé teszi a web alkalmazások E2E tesztelését 4 A Selenium

Webdriver minden

elemét megvalósítja

(13)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

Jasmine

4Specs

4Expectations 4Matchers

4Setup and Teardown 4Spies

4Clock

4Asynchronous Support

(14)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing UNI V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

Specs, Expectation, Matching

(15)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

Setup and Teardown

(16)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing UNI V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

This, fail

(17)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

Spies

(18)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing UNI V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

Clock

(19)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

Async/await

(20)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing UNI V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

Angular tesztelés

4Szolgáltatás tesztelés 4Osztály tesztelés

4TestBed

■ Komponens tesztelés

(21)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

Service Tests

(22)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing UNI V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

TestBed

4Angular Unit tesztelés alapeszköze, csak angular környezetben használható

4Kombinálható más keretrendszerekkel (Jasmin, Karma)

4A DI segítségével angular könyvtár szinten kezeli a függőségeket

■ Mint fogyasztó erről nem kellene tudnunk (DI)

■ Mint szolgáltatás tesztelő az első szintű függőséegeket és a paraméterezést

kezelnünk kell

(23)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

TestBed

4@NgModule-t emulálja egy egy dinamikusan öszerakott Angular test modul segítségével.

4A TestBed.configureTestin gModule() fogadja az

@NgModule paramétereit

4Adott szolgáltatás teszteléséhez a

providers tömböt kitöltjük

a mock vagy valós

(24)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing UNI V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

TestBed és Spy

(25)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

Komponens tesztelés

4A komponesek nem, csak TS kódból állnak, adott futtató környezetük van.

■ HTML

■ TS

4Az ilyen teszteknél létre kell hozni host elemet a DOM-ban

4Meg kell vizsgálni az adott DOM elem hatását, együttműködését is más

elemekkel

(26)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing UNI V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

Komponens osztály tesztelése

(27)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

Komponens DOM tesztelés

(28)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing UNI V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

Automatikus változás detektálás

(29)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

Protractor

(30)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing UNI V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

Protractor

(31)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

WebDriver vs. Protractor

WebDriver Syntax Protractor Syntax

webdriver.By by

browser.findElement(...) element(...) browser.findElements(...) element.all(...) browser.findElement(webdriver.By.css(...)) $(...)

browser.findElements(webdriver.By.css(...)) $$(...)

(32)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing UNI V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

Egyszerű teszt

(33)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

Komponensek elérése

(34)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing UNI V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

Locators

(35)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

Actions

(36)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing UNI V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

Több teszt

(37)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

Több böngésző

(38)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing UNI V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

Több elem

(39)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

A előadás összefoglalója

■ CI

■ Tesztelés

■ Angular tesztelés

■ Jasmine

■ Karma

■ Protractor

(40)

UNI V E R S IT Y OF S Z E GE D D epar tm ent of Sof tw ar e E ngi ne er ing UNI V E RS IT A S S CI E NT IA RUM S Z E G E DI E NS IS

A következő előadás

4Web háttérrendszerek

Hivatkozások

KAPCSOLÓDÓ DOKUMENTUMOK

UNIVERSITY OF SZEGED Department of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS..

UNIVERSITY OF SZEGED Department of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS6.

UNIVERSITY OF SZEGED Department of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS.. Mobil alkalmazásfejlesztés - UI alapok

UNIVERSITY OF SZEGED Department of Software Engineering IVERSITAS SCIENTIARUM SZEGEDIENSIS.. Mobil alkalmazásfejlesztés -

UNIVERSITY OF SZEGED Department of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS.. Mobil alkalmazásfejlesztés -

UNIVERSITY OF SZEGED Department of Software Engineering SITAS SCIENTIARUM SZEGEDIENSIS setMinimumLatency(long minLatencyMillis). ● A befejezés előtt megvárt minimális

UNIVERSITY OF SZEGED Department of Software Engineering SITAS SCIENTIARUM SZEGEDIENSIS.. Mobil alkalmazásfejlesztés

UNIVERSITY OF SZEGED Department of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS.. Apple Swift alapú