Назад к вопросам
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-запроса.