Sobes.tech
Middle

Podaj przykład, jak wybrałbyś przypadki testowe dla żądania PUT.

sobes.tech AI

Odpowiedź od AI

Dla wyboru przypadków testowych dla żądania PUT zastosowałbym następujące podejścia, koncentrując się na różnych aspektach:

  • Dane poprawne:

    • Tworzenie / modyfikacja rekordu z poprawnymi, pełnymi danymi.
    • Modyfikacja tylko niektórych pól, pozostałe pozostają bez zmian.
    • Modyfikacja wszystkich pól na nowe, poprawne wartości.
    • Użycie wartości granicznych dla pól numerycznych (minimalne, maksymalne).
    • Użycie różnych formatów danych dozwolonych przez specyfikację (np. data, czas).
  • Dane niepoprawne:

    • Przesłanie danych z niepoprawnym typem pola (np. ciąg znaków zamiast liczby).
    • Przesłanie danych naruszających ograniczenia długości ciągu lub zakresu liczby.
    • Przesłanie danych naruszających unikalność pola (jeśli dotyczy).
    • Przesłanie danych w niepoprawnym formacie (np. nieprawidłowa data, email).
    • Brak obowiązkowych pól.
    • Przesłanie pustych ciągów lub null dla pól, które nie mogą być puste.
  • Istnienie zasobu:

    • Żądanie PUT do istniejącego zasobu.
    • Żądanie PUT do nieistniejącego zasobu (oczekiwana odpowiedź 404).
  • Autoryzacja i uwierzytelnianie:

    • Żądanie PUT z poprawnymi danymi użytkownika mającego prawo do modyfikacji zasobu.
    • Żądanie PUT z niepoprawnymi lub brakującymi danymi uwierzytelniającymi (oczekiwane 401 Nieautoryzowany lub 403 Zabroniony).
    • Żądanie PUT od użytkownika bez niezbędnych uprawnień do modyfikacji tego zasobu (oczekiwane 403 Zabroniony).
  • Synchronizacja i konkurencja:

    • Równoczesne żądania PUT do tego samego zasobu (np. z użyciem etag).
  • Obsługa błędów:

    • Żądanie PUT, które powinno wywołać błąd po stronie serwera (np. z powodu awarii wewnętrznej).

Przykład tabeli z przypadkami testowymi:

ID Opis przypadku testowego Warunki wstępne Dane testowe (część żądania) Oczekiwany wynik Kod HTTP
PUT-001 Modyfikacja istniejącego zasobu z poprawnymi danymi Zasób o ID=123 istnieje { "name": "Nowa nazwa", "value": 100 } Zasób pomyślnie zaktualizowany, dane zgodne z żądaniem 200
PUT-002 Modyfikacja istniejącego zasobu z częściową aktualizacją Zasób o ID=123 istnieje { "name": "Tylko nazwa zmieniona" } Zasób pomyślnie zaktualizowany, tylko pole name zmienione 200
PUT-003 Próba modyfikacji nieistniejącego zasobu Zasób o ID=999 nie istnieje { "name": "Nieistniejąca aktualizacja" } Zasób nie znaleziony 404
PUT-004 Modyfikacja zasobu z nieprawidłowym typem danych Zasób o ID=123 istnieje { "value": "nie liczba" } Błąd walidacji danych 400
PUT-005 Modyfikacja zasobu bez uwierzytelnienia Zasób o ID=123 istnieje, żądanie bez tokena { "name": "Nieautoryzowana zmiana" } Nieautoryzowany 401

Każdy przypadek testowy powinien być atomowy i sprawdzać konkretny aspekt funkcjonalności żądania PUT.