Middle
47
questionbank

Приведи пример, как бы ты выбирал тест-кейсы для PUT-запроса?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Для выбора тест-кейсов для 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-запроса.