Middle
Можеш ли да дадеш пример как би избрал тестови случаи за PUT заявка?
sobes.tech AI
Отговор от AI
Щях да избирам тестови случаи въз основа на следното:
-
Успешна актуализация:
- Актуализиране на всички полета с валидни стойности.
- Актуализиране на едно или повече полета, като останалите остават без промяна.
- Актуализиране на полета с гранични стойности (ако е приложимо).
-
Неуспешна актуализация (негативни тестове):
- Невалидни данни:
- Неправилен формат на данните за полета (например низ вместо число).
- Стойности, превишаващи максималната дължина или извън допустимия диапазон.
- Липсващи задължителни полета в тялото на заявката.
- Несъществуващ ресурс:
- PUT заявка с ID, който не съществува в системата.
- Конфликт на данни:
- Опит за актуализиране на ресурс, който е бил променен от друг потребител (ако се използва механизъм за версиониране или блокиране).
- Липса на права:
- Опит за актуализиране на ресурс без съответните права.
- Валидиращи грешки:
- Нарушение на бизнес логиката или ограниченията на базата данни (например дублиране на уникална стойност).
- Неправилен Content-Type:
- Изпращане на заявка с Content-Type, различен от очаквания (например
text/plainвместоapplication/json).
- Изпращане на заявка с Content-Type, различен от очаквания (например
- Празно тяло на заявката:
- Изпращане на заявка без тяло.
- Невалидни данни:
-
Гранични условия:
- Актуализиране на ресурс с минимален набор от полета (ако е допустимо).
- Актуализиране на ресурс с максимален набор от полета.
- Проверка на поведението при предаване в тялото на заявката на допълнителни, неочаквани полета.
Примерна структура на тестови случаи:
| Казус | Описание | Очакван резултат |
|---|---|---|
| Успешна актуализация | Актуализиране на всички полета с коректни стойности. | 200 OK / 204 No Content (зависи от API) |
| Несъществуващо ID | Опит за актуализиране на ресурс с ID, който не съществува. | 404 Not Found |
| Невалиден формат на данните | Опит за актуализиране на поле от тип число с низ. | 400 Bad Request |
| Липсващо задължително поле | Липсващо в тялото поле, маркирано като задължително. | 400 Bad Request |
| Липса на права | Опит за актуализиране на ресурс от потребител без необходимите права. | 403 Forbidden |
За автоматизация бих използвал рамки като RestAssured (Java), Requests (Python) или Supertest (Node.js) и инструменти за генериране на тестови данни.