Sobes.tech
Middle

Дайте пример как бихте избрали тестови случаи за PUT заявка.

sobes.tech AI

Отговор от AI

При избора на тест случаи за PUT заявка, бих следвал следните принципи:

  1. Позитивни сценарии:

    • Успешно пълно обновяване на съществуващ ресурс с валидни данни.
    • Успешно частично обновяване на съществуващ ресурс (ако API го поддържа).
    • Обновяване на ресурс с използване на гранични стойности за полетата.
  2. Негативни сценарии:

    • Липса на ресурс с посоченото ID.
    • Невалиден формат на ID на ресурса.
    • Невалиден тип данни в полетата на заявката.
    • Липса на задължителни полета в тялото на заявката.
    • Невалиден формат на тялото на заявката (например, не JSON).
    • Опит за обновяване на полета, които не трябва да бъдат обновявани (например, ID, дата на създаване).
    • Недостатъчни права за достъп до ресурса.
    • Конкурентно обновяване на ресурса (за проверка на обработката на конфликти).
  3. Гранични условия:

    • Максимално допустими стойности за числовите полета.
    • Празни низове за низови полета (ако е разрешено).
    • Специални символи в низовите полета.
    • Дълги низове за низовите полета.
  4. Проверка на странични ефекти:

    • Промяна на други свързани ресурси след обновяването.
    • Коректност на показването на обновените данни в други части на системата (например, в потребителския интерфейс).

Примерна структура на тест-кейсове (за ресурс user с полета id, name, email):

TestCase ID Описание URL на заявката Тяло на заявката Очакван статус код Очаквано поведение/тяло на отговора
PUT_USR_001 Успешно пълно обновяване /users/123 {"name": "New Name", "email": "new@example.com"} 200 Обновени данни за потребителя
PUT_USR_002 Потребител не е намерен /users/999 {"name": "New Name"} 404 Съобщение за грешка, че потребителят не е намерен
PUT_USR_003 Невалиден формат на имейл /users/123 {"email": "invalid-email"} 400 Съобщение за грешка, че форматът на имейла е невалиден
PUT_USR_004 Липсва задължително поле /users/123 {} 400 Съобщение за грешка, че липсва поле
PUT_USR_005 Опит за обновяване с максимална граница на стойност /users/123 {"name": "A" * 255} 200 Обновени данни за потребителя с дълго име
PUT_USR_006 Опит за обновяване на недопустимо поле /users/123 {"id": 456, "name": "New Name"} 400/403 Съобщение за грешка, че обновяването е забранено или грешна заявка

Разбира се, конкретният набор от тест-кейсове ще зависи от спецификацията на API, бизнес логиката и архитектурата на системата.