Для выбора тест-кейсов для PUT-запроса я бы применил следующие подходы, фокусируясь на различных аспектах:
Валидные данные:
Невалидные данные:
Существование ресурса:
Авторизация и аутентификация:
Синхронизация и конкурентность:
Обработка ошибок:
Пример таблицы с тест-кейсами:
| ID | Описание тест-кейса | Предусловия | Тестовые данные (часть запроса) | Ожидаемый результат | HTTP Код |
|---|---|---|---|---|---|
| PUT-001 | Изменение существующего ресурса с валидными данными | Ресурс с ID=123 существует | { "name": "New Name", "value": 100 } | Ресурс успешно обновлен, данные соответствуют запросу | 200 |
| PUT-002 | Изменение существующего ресурса с частичным обновлением | Ресурс с ID=123 существует | { "name": "Only Name Changed" } | Ресурс успешно обновлен, только поле name изменено | 200 |
| PUT-003 | Попытка изменения несуществующего ресурса | Ресурс с ID=999 не существует | { "name": "Non Existent Update" } | Ресурс не найден | 404 |
| PUT-004 | Изменение ресурса с невалидным типом данных | Ресурс с ID=123 существует | { "value": "not_a_number" } | Ошибка валидации данных | 400 |
| PUT-005 | Изменение ресурса без аутентификации | Ресурс с ID=123 существует, запрос без токена | { "name": "Unauthorized Change" } | Не авторизован | 401 |
Каждый тест-кейс должен быть атомарным и проверять конкретный аспект функциональности PUT-запроса.