Sobes.tech
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:

  1. 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.
  2. 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).
  3. 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.
  4. 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.