Sobes.tech
Middle

Можеш ли да дадеш пример как би избрал тестови случаи за PUT заявка?

sobes.tech AI

Отговор от AI

Щях да избирам тестови случаи въз основа на следното:

  • Успешна актуализация:

    • Актуализиране на всички полета с валидни стойности.
    • Актуализиране на едно или повече полета, като останалите остават без промяна.
    • Актуализиране на полета с гранични стойности (ако е приложимо).
  • Неуспешна актуализация (негативни тестове):

    • Невалидни данни:
      • Неправилен формат на данните за полета (например низ вместо число).
      • Стойности, превишаващи максималната дължина или извън допустимия диапазон.
      • Липсващи задължителни полета в тялото на заявката.
    • Несъществуващ ресурс:
      • PUT заявка с ID, който не съществува в системата.
    • Конфликт на данни:
      • Опит за актуализиране на ресурс, който е бил променен от друг потребител (ако се използва механизъм за версиониране или блокиране).
    • Липса на права:
      • Опит за актуализиране на ресурс без съответните права.
    • Валидиращи грешки:
      • Нарушение на бизнес логиката или ограниченията на базата данни (например дублиране на уникална стойност).
    • Неправилен Content-Type:
      • Изпращане на заявка с Content-Type, различен от очаквания (например text/plain вместо application/json).
    • Празно тяло на заявката:
      • Изпращане на заявка без тяло.
  • Гранични условия:

    • Актуализиране на ресурс с минимален набор от полета (ако е допустимо).
    • Актуализиране на ресурс с максимален набор от полета.
    • Проверка на поведението при предаване в тялото на заявката на допълнителни, неочаквани полета.

Примерна структура на тестови случаи:

Казус Описание Очакван резултат
Успешна актуализация Актуализиране на всички полета с коректни стойности. 200 OK / 204 No Content (зависи от API)
Несъществуващо ID Опит за актуализиране на ресурс с ID, който не съществува. 404 Not Found
Невалиден формат на данните Опит за актуализиране на поле от тип число с низ. 400 Bad Request
Липсващо задължително поле Липсващо в тялото поле, маркирано като задължително. 400 Bad Request
Липса на права Опит за актуализиране на ресурс от потребител без необходимите права. 403 Forbidden

За автоматизация бих използвал рамки като RestAssured (Java), Requests (Python) или Supertest (Node.js) и инструменти за генериране на тестови данни.