Middle
Podaj przykład, jak wybrałbyś przypadki testowe dla żądania PUT.
sobes.tech AI
Odpowiedź od AI
Przy wyborze przypadków testowych dla żądania PUT kierowałbym się następującymi zasadami:
-
Scenariusze pozytywne:
- Pomyślna pełna aktualizacja istniejącego zasobu z poprawnymi danymi.
- Pomyślna częściowa aktualizacja istniejącego zasobu (jeśli API to obsługuje).
- Aktualizacja zasobu z użyciem wartości granicznych dla pól.
-
Scenariusze negatywne:
- Brak zasobu dla podanego ID.
- Nieprawidłowy format ID zasobu.
- Nieprawidłowy typ danych w polach żądania.
- Brak obowiązkowych pól w ciele żądania.
- Nieprawidłowy format ciała żądania (np. nie JSON).
- Próba aktualizacji pól, które nie powinny być aktualizowane (np. ID, data utworzenia).
- Brak wystarczających uprawnień do aktualizacji zasobu.
- Konkurencyjna aktualizacja zasobu (w celu sprawdzenia obsługi konfliktów).
-
Warunki brzegowe:
- Maksymalne dozwolone wartości dla pól numerycznych.
- Puste ciągi znaków dla pól tekstowych (jeśli dozwolone).
- Znaki specjalne w polach tekstowych.
- Długie ciągi znaków dla pól tekstowych.
-
Sprawdzanie efektów ubocznych:
- Zmiany innych powiązanych zasobów po aktualizacji.
- Poprawne wyświetlanie zaktualizowanych danych w innych częściach systemu (np. w interfejsie użytkownika).
Przykład struktury przypadków testowych (dla zasobu user z polami id, name, email):
| ID przypadku testowego | Opis | URL żądania | Treść żądania | Oczekiwany kod statusu | Oczekiwane ciało odpowiedzi / zachowanie |
|---|---|---|---|---|---|
| PUT_USR_001 | Udana pełna aktualizacja | /users/123 |
{"name": "Nowa Nazwa", "email": "nowy@przyklad.com"} |
200 | Zwracane zaktualizowane dane użytkownika |
| PUT_USR_002 | Nie znaleziono użytkownika | /users/999 |
{"name": "Nowa Nazwa"} |
404 | Komunikat o błędzie wskazujący, że użytkownik nie został znaleziony |
| PUT_USR_003 | Nieprawidłowy format email | /users/123 |
{"email": "nieprawidlowy-email"} |
400 | Komunikat o błędzie wskazujący nieprawidłowy format email |
| PUT_USR_004 | Brak wymaganego pola (jeśli dotyczy) | /users/123 |
{} |
400 | Komunikat o błędzie wskazujący brak pola |
| PUT_USR_005 | Maksymalna wartość graniczna dla pola | /users/123 |
{"name": "A" * 255} |
200 | Zaktualizowane dane użytkownika z długim imieniem |
| PUT_USR_006 | Próba aktualizacji pola, które nie może być zaktualizowane (id) | /users/123 |
{"id": 456, "name": "Nowa Nazwa"} |
400/403 | Komunikat o błędzie wskazujący na zakazany lub nieprawidłowy żądanie |
Oczywiście, konkretna liczba przypadków testowych będzie zależała od specyfikacji API, logiki biznesowej i architektury systemu.