Middle
Дайте пример как бихте избрали тестови случаи за PUT заявка.
sobes.tech AI
Отговор от AI
При избора на тест случаи за PUT заявка, бих следвал следните принципи:
-
Позитивни сценарии:
- Успешно пълно обновяване на съществуващ ресурс с валидни данни.
- Успешно частично обновяване на съществуващ ресурс (ако API го поддържа).
- Обновяване на ресурс с използване на гранични стойности за полетата.
-
Негативни сценарии:
- Липса на ресурс с посоченото ID.
- Невалиден формат на ID на ресурса.
- Невалиден тип данни в полетата на заявката.
- Липса на задължителни полета в тялото на заявката.
- Невалиден формат на тялото на заявката (например, не JSON).
- Опит за обновяване на полета, които не трябва да бъдат обновявани (например, ID, дата на създаване).
- Недостатъчни права за достъп до ресурса.
- Конкурентно обновяване на ресурса (за проверка на обработката на конфликти).
-
Гранични условия:
- Максимално допустими стойности за числовите полета.
- Празни низове за низови полета (ако е разрешено).
- Специални символи в низовите полета.
- Дълги низове за низовите полета.
-
Проверка на странични ефекти:
- Промяна на други свързани ресурси след обновяването.
- Коректност на показването на обновените данни в други части на системата (например, в потребителския интерфейс).
Примерна структура на тест-кейсове (за ресурс 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, бизнес логиката и архитектурата на системата.