Middle
52
questionbank

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

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

При выборе тест-кейсов для PUT-запроса я бы руководствовался следующими принципами:

  1. Позитивные сценарии:

    • Успешное полное обновление существующего ресурса с валидными данными.
    • Успешное частичное обновление существующего ресурса (если API это поддерживает).
    • Обновление ресурса с использованием граничных значений для полей.
  2. Негативные сценарии:

    • Отсутствие ресурса по указанному ID.
    • Невалидный формат ID ресурса.
    • Невалидный тип данных в полях запроса.
    • Отсутствие обязательных полей в теле запроса.
    • Неправильный формат тела запроса (например, не JSON).
    • Попытка обновления полей, которые не должны подлежать обновлению (например, ID, дата создания).
    • Недостаточные права доступа для обновления ресурса.
    • Конкурентное обновление ресурса (для проверки обработки конфликтов).
  3. Граничные условия:

    • Максимально допустимые значения для числовых полей.
    • Пустые строки для строковых полей (если это разрешено).
    • Специальные символы в строковых полях.
    • Длинные строки для строковых полей.
  4. Проверка побочных эффектов:

    • Изменение других связанных ресурсов после обновления.
    • Корректность отображения обновленных данных в других частях системы (например, в пользовательском интерфейсе).

Пример структуры тест-кейсов (для ресурса user с полями id, name, email):

TestCase IDDescriptionRequest URLRequest BodyExpected Status CodeExpected Response Body/Behavior
PUT_USR_001Successful full update/users/123{"name": "New Name", "email": "new@example.com"}200Updated user data returned
PUT_USR_002User not found/users/999{"name": "New Name"}404Error message indicating user not found
PUT_USR_003Invalid email format/users/123{"email": "invalid-email"}400Error message indicating invalid email format
PUT_USR_004Missing required field (if applicable)/users/123{}400Error message indicating missing field
PUT_USR_005Update with max boundary value for a field/users/123{"name": "A" * 255}200Updated user data with long name
PUT_USR_006Attempt to update non-updatable field (id)/users/123{"id": 456, "name": "New Name"}400/403Error message indicating forbidden/bad request

Конечно, конкретный набор тест-кейсов будет зависеть от спецификации API, бизнес-логики и архитектуры системы.