Назад к вопросам
Middle
77
questionbank
Приведи пример, как бы ты выбирал тест-кейсы для PUT-запроса.
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
При выборе тест-кейсов для PUT-запроса я бы руководствовался следующими принципами:
-
Позитивные сценарии:
- Успешное полное обновление существующего ресурса с валидными данными.
- Успешное частичное обновление существующего ресурса (если API это поддерживает).
- Обновление ресурса с использованием граничных значений для полей.
-
Негативные сценарии:
- Отсутствие ресурса по указанному ID.
- Невалидный формат ID ресурса.
- Невалидный тип данных в полях запроса.
- Отсутствие обязательных полей в теле запроса.
- Неправильный формат тела запроса (например, не JSON).
- Попытка обновления полей, которые не должны подлежать обновлению (например, ID, дата создания).
- Недостаточные права доступа для обновления ресурса.
- Конкурентное обновление ресурса (для проверки обработки конфликтов).
-
Граничные условия:
- Максимально допустимые значения для числовых полей.
- Пустые строки для строковых полей (если это разрешено).
- Специальные символы в строковых полях.
- Длинные строки для строковых полей.
-
Проверка побочных эффектов:
- Изменение других связанных ресурсов после обновления.
- Корректность отображения обновленных данных в других частях системы (например, в пользовательском интерфейсе).
Пример структуры тест-кейсов (для ресурса user с полями id, name, email):
| TestCase ID | Description | Request URL | Request Body | Expected Status Code | Expected Response Body/Behavior |
|---|---|---|---|---|---|
| PUT_USR_001 | Successful full update | /users/123 |
{"name": "New Name", "email": "new@example.com"} |
200 | Updated user data returned |
| PUT_USR_002 | User not found | /users/999 |
{"name": "New Name"} |
404 | Error message indicating user not found |
| PUT_USR_003 | Invalid email format | /users/123 |
{"email": "invalid-email"} |
400 | Error message indicating invalid email format |
| PUT_USR_004 | Missing required field (if applicable) | /users/123 |
{} |
400 | Error message indicating missing field |
| PUT_USR_005 | Update with max boundary value for a field | /users/123 |
{"name": "A" * 255} |
200 | Updated user data with long name |
| PUT_USR_006 | Attempt to update non-updatable field (id) | /users/123 |
{"id": 456, "name": "New Name"} |
400/403 | Error message indicating forbidden/bad request |
Конечно, конкретный набор тест-кейсов будет зависеть от спецификации API, бизнес-логики и архитектуры системы.