Назад к вопросам
Middle
71
questionbank
Приведи пример, как бы ты выбирал тест-кейсы для PUT-запроса?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Для выбора тест-кейсов для PUT-запроса я бы применил следующие подходы, фокусируясь на различных аспектах:
-
Валидные данные:
- Создание / изменение записи с корректными, полными данными.
- Изменение только части полей, остальные остаются без изменений.
- Изменение всех полей на новые, валидные значения.
- Использование граничных значений для числовых полей (минимальное, максимальное).
- Использование различных форматов данных, разрешенных спецификацией (например, дата, время).
-
Невалидные данные:
- Передача данных с некорректным типом поля (например, строка вместо числа).
- Передача данных, нарушающих ограничения на длину строки или диапазон числа.
- Передача данных, нарушающих уникальность поля (если применимо).
- Передача данных с некорректным форматом (невалидная дата, email).
- Отсутствие обязательных полей.
- Передача пустых строк или null для полей, которые не должны быть пустыми.
-
Существование ресурса:
- PUT-запрос на существующий ресурс.
- PUT-запрос на несуществующий ресурс (ожидаем ответ 404).
-
Авторизация и аутентификация:
- PUT-запрос с корректными учетными данными пользователя, имеющего право на изменение ресурса.
- PUT-запрос с некорректными или отсутствующими учетными данными (ожидаем 401 Unauthorized или 403 Forbidden).
- PUT-запрос от пользователя без необходимых прав на изменение данного ресурса (ожидаем 403 Forbidden).
-
Синхронизация и конкурентность:
- Одновременные PUT-запросы на один и тот же ресурс (например, с использованием etag).
-
Обработка ошибок:
- 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-запроса.