Stronę tą wyświetlono już: 907 razy
W przypadku obiektów klas, które nie dziedziczą testowanie jest bardzo proste. Ważne jest aby zrozumieć, że testować należy jedynie metody publiczne (public) klasy, jeżeli istnieje konieczność testowania metod prywatnych (private) czy chronionych (protected) należy wydzielić je do oddzielnej klasy i z poziomu takiej klasy testować (tak przynajmniej jest w teorii).
Oto przykładowa prosta klasa przeznaczona do przetestowania:
Jak widać nie ma tu zbyt wiele do przetestowania, to co można przetestować to:
- czy utworzenie instancji zakończy się sukcesem;
- czy utworzenie instancji inicjalizacje klasę poprawnymi danymi;
- czy getter zwróci poprawny wiek studenta
Czas zacząć zabawę w testowanie:
Funkcja describe przyjmuje jako pierwszy argument opis testu, zaś jako drugi argument funkcję, w której można umieścić wywołania funkcji związanych z inicjalizacją środowiska testowego oraz wywołaniem funkcji it opisującej konkretny przypadek testu i wykonującej test za pomocą funkcji expect.
Wynikiem testu będzie wyświetlenie w oknie przeglądarki mniej więcej takich danych:
Można jeszcze się pokusić o uruchomienie testu z parametrem --code-coverage, co spowoduje utworzenie katalogu coverage zawierającego plik index.html, po którego wyświetleniu w przeglądarce można zobaczyć stopień pokrycia kodu testami (co pokazane zostało na poniższym rysunku).
Po kliknięciu na dany link można oczywiście wyświetlić dalsze szczegóły dotyczące testowanego kodu. Są tam informacje o tym ile razy dany kod został wywołany, które instrukcje warunkowe nie zostały wykonane ani razu, które funkcje nie zostały wywołane ani razu. Ogólnie zalecam pobawienie się tym samemu.