Angular - testy

Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 2108 razy

Wstęp

Testy jednostkowe (units tests) w Angularze wykonywane są przy wykorzystaniu takich frameworków jak Karma i Jasmine pierwszy z nich uruchamia testy, drugi przeprowadza testy. Głównym celem testu jest sprawdzenie np. czy dana metoda po wywołaniu doprowadzi do oczekiwanego rezultatu. Niektóre metody mogą być testowane pod kątem zwracanego rezultatu w zależności od parametrów przekazanych do wnętrza. Czyli przy zadanych parametrach przekazanych do metody oczekuje się zwrócenia określonego obiektu czy wartości. Jest jeszcze jeden powód testów jednostkowych. Mianowicie nie zawsze można wyłapać pewne błędy. Niektóre z nich bowiem występują dopiero po wywołaniu konkretnego kawałka kodu. Z tego też względu stosuje się też kryterium oceniania jakości testów za pomocą określenia pokrycia kodu (code coverage). Kryterium to nie mniej nie więcej oznacza konieczność wykonania danego kawałka kodu przez test aby został on zaliczony jako pokryty. 100% pokrycia oznacza, że cały testowany kod został wywołany w trakcie testów.

Uruchamianie testów jednostkowych

Uruchomienie testów jednostkowych jest bardzo proste i polega na wpisaniu w konsoli z poziomu folderu zwierającego projekt polecenia:

ng test

Możliwe jest również użycie opcji, z których jedną z bardziej przydatnych jest --code-coverage. Ta opcja powoduje, że utworzony zostanie system plików HTML zawierających zestawienie dotyczące stopnia pokrycia kodu testami jednostkowymi.

Izolacja komponentów i serwisów

Bardzo istotnym jest izolacja komponentów oraz serwisów tak, aby logika wstrzykiwanych serwisów, czy używanych komponentów nie była testowana w trakcie testowania komponentu korzystającego z owych serwisów i/lub komponentów. W tym celu mokuje się takie serwisy izolując ich logikę od testowanego kodu czy to komponentu, czy serwisu. Bardzo istotnym jest też, aby testy nie pobierały niczego z serwera.