Szymon Stanisz - e2e frameworks - czyli kij ma dwa końce
www.tsh.io
Automatyczne testy end-to-end aplikacji React i Angular. Wprowadzenie w świat testowania przyszłości. Dlaczego warto automatyzować i dlaczego kij ma dwa końce.
4. TEORIA A PRAKTYKA
Testy e2e służą do potwierdzenia oczekiwań użytkownika względem
aplikacji. Upewnienie się, że poszczególne komponenty aplikacji są
poprawne nie jest wystarczające, nie daje nam to gwarancji, że ich suma
również jest poprawna. Matematyka ...
01 JAVASCRIPT
5. TEORII CIAG
DALSZY
Po pierwsze, musimy traktować naszą
aplikację jako czarną skrzynkę. Musimy
testować na poziomie interfejsu
użytkownika końcowego, bez znajomości
wnętrzności aplikacji. I nie powinniśmy
robić żadnych skrótów: nie powinniśmy
mockować żadnych fragmentów kodu,
omijać jakichkolwiek warstw, wrzucać
fikstur bezpośrednio do bazy danych itp
02 JAVASCRIPT
6. 03 JAVASCRIPT
A PRAKTYKA?
Testowana aplikacja powinna być
traktowana jako czarna skrzynka, ponieważ
testujemy na poziomie interfejsu
użytkownika końcowego.
Kolejną implikacją jest dużo większa
złożoność oraz mało precyzyjny feedback,
co powoduje że są trudne do debugowania.
7. NIGHTWATCH.JS
Nightwatch.js to prosty w użyciu framework E2E oparty o Node.js
przeznaczony do testowania aplikacji i stron www. Polecany w
przypadku testowania aplikacji opartych na React.
04 JAVASCRIPT
8. ZALETY
Sowa jako logo :)
Własna implementacja W3C
webdriver API
Łatwy w rozszerzaniu
Posiada własny mechanizm asercji,
Oparty o Page Object Pattern
Prosty
05 JAVASCRIPT
9. WADY Słabszy support w porównaniu
z Protractorem lub webdriver.io
easy to start hard to master
06 JAVASCRIPT
10. PROTRACTOR
Protractor to prosty w użyciu framework E2E przeznaczony
dla aplikacji opartych na AngularJS. Framework symuluje
działania użytkownika w prawdziwej przeglądarce.
07 JAVASCRIPT
11. ZALETY
Jedyny framework do
automatyzacji posiadający
wbudowane wsparcie dla aplikacji
Angularowych.
Posiada wsparcie dla różnych
frameworków testowych jak
Jasmine, Cucucmber itd.
Dobry mechanizm raportowania
Posiada wsparcie dla TypeScripta,
które wesprze developerów
Angulara 2 w pisaniu unit testów.
08 JAVASCRIPT
12. WADY
Nie posiada wsparcia dla
automatyzacji aplikacji mobilnych
Prtoractor jest nakładką na
WebDriverJs.
09 JAVASCRIPT
14. 11 JAVASCRIPT
(A)LIVE CODE?
A teraz przyjrzyjmy się jak wygląda Protractor i NightwatchJS na
podstawie prostych przykładów.
Skomplikujemy jednak sobie trochę życie i dodamy do tego tortu
wisienkę w postaci Cucumbera.
16. THANK YOU!
MAM NADZIEJĘ, ŻE CZEGOŚ SIĘ
NAUCZYLIŚCIE :)
13 JAVASCRIPT
Spotkacie nas na www.tsh.io
szymon.stanisz@thesoftwarehouse.pl
stanisz.szymon@gmail.com