|
|
# Testy Funkcjonalne
|
|
|
|
|
|
## Wstęp: Czym są testy funkcjonalne?
|
|
|
|
|
|
Testy funkcjonalne to rodzaj testów, które sprawdzają, czy poszczególne funkcje aplikacji działają zgodnie z wymaganiami i oczekiwaniami. W przeciwieństwie do testów jednostkowych, które skupiają się na pojedynczych komponentach w izolacji, testy funkcjonalne koncentrują się na zachowaniu systemu jako całości. Weryfikują one, czy aplikacja poprawnie reaguje na dane wejściowe i czy generuje oczekiwane wyniki, symulując rzeczywiste scenariusze użytkownika.
|
|
|
|
|
|
W projekcie `StreetGames` testy funkcjonalne są wykorzystywane do sprawdzenia, czy kontrolery, serwisy i inne komponenty aplikacji działają poprawnie w kontekście logiki biznesowej i interakcji z użytkownikiem.
|
|
|
|
|
|
## Struktura testów funkcjonalnych w projekcie
|
|
|
|
|
|
Testy funkcjonalne w projekcie `StreetGames` są podzielone na kilka klas, z których każda odpowiada za testowanie konkretnego komponentu:
|
|
|
|
|
|
### **LoginControllerTests**:
|
|
|
Testy dla kontrolera logowania, które sprawdzają, czy aplikacja poprawnie obsługuje proces logowania, w tym walidację danych wejściowych i komunikaty błędów. Testy sprawdzają, czy kontroler poprawnie obsługuje różne scenariusze, takie jak puste pola formularza, nieistniejący użytkownik oraz poprawne logowanie.
|
|
|
|
|
|
### **RegisterControllerTests**:
|
|
|
Testy dla kontrolera rejestracji, które weryfikują, czy aplikacja poprawnie obsługuje rejestrację nowych użytkowników, w tym walidację danych i obsługę błędów.
|
|
|
|
|
|
###**UserServiceTests**:
|
|
|
Testy dla serwisu użytkownika, które sprawdzają, czy operacje CRUD (tworzenie, odczyt, aktualizacja, usuwanie) na użytkownikach działają zgodnie z oczekiwaniami.
|
|
|
|
|
|
|
|
|
## Dlaczego stosujemy testy funkcjonalne?
|
|
|
|
|
|
Testy funkcjonalne są kluczowym elementem zapewnienia jakości oprogramowania. Oto główne powody, dla których je stosujemy:
|
|
|
|
|
|
1. **Weryfikacja poprawności działania**: Testy funkcjonalne pozwalają upewnić się, że aplikacja działa zgodnie z wymaganiami biznesowymi i oczekiwaniami użytkowników.
|
|
|
2. **Wykrywanie błędów**: Testy te pomagają wykryć błędy, które mogą nie zostać wychwycone przez testy jednostkowe, zwłaszcza te związane z interakcją między różnymi komponentami systemu.
|
|
|
3. **Zapewnienie niezawodności**: Dzięki testom funkcjonalnym można upewnić się, że aplikacja działa poprawnie w różnych scenariuszach, co zwiększa jej niezawodność.
|
|
|
4. **Uproszczenie procesu wdrażania**: Testy funkcjonalne pomagają w szybkim wykrywaniu problemów przed wdrożeniem aplikacji, co zmniejsza ryzyko wystąpienia błędów w środowisku produkcyjnym.
|
|
|
5. **Poprawa doświadczenia użytkownika**: Dzięki testom funkcjonalnym można upewnić się, że aplikacja reaguje na działania użytkownika w sposób intuicyjny i zgodny z oczekiwaniami. |