Sobes.tech
Senior

La méthode passe une commande sur le site. Elle accepte : 1 Liste des envois avec produits 2 Date de réception prévue pour chaque envoi 3 Adresse de réception avec commentaires 4 Méthode de paiement, par exemple, carte bancaire. La limite de longueur pour address.comment est de 200 caractères La limite de longueur pour shipments est de 200 objets Il faut tester (élaborer une liste de vérification) cette méthode. POST /order { "shipments": [ // envois/boîtes avec produits { "id": "number", "date": "number" // Date de livraison prévue } ], "adress": { "id": "number", "comment": "string", "is_leave_at_door": "boolean" // laisser à la porte }, "payment_method": "string" # card / apple_pay }

sobes.tech IA

Réponse de l'IA

Чек-лист тестирования метода POST /order:

  1. Валидация входных данных:

    • Проверить, что поле shipments присутствует и содержит не более 200 объектов.
    • Проверить, что каждый объект в shipments содержит корректные поля id (число) и date (число, валидная дата).
    • Проверить, что поле adress присутствует и содержит id (число), comment (строка, не более 200 символов), is_leave_at_door (булево).
    • Проверить, что поле payment_method содержит допустимые значения (card, apple_pay).
  2. Граничные значения:

    • Отправить запрос с 0, 1, 200 и более 200 отправлениями.
    • Проверить длину adress.comment на 0, 200 и более 200 символов.
  3. Формат и типы данных:

    • Передать неверные типы данных (строка вместо числа, число вместо булева).
    • Отправить пустые или отсутствующие поля.
  4. Логика обработки:

    • Проверить, что заказ создаётся корректно при валидных данных.
    • Проверить поведение при невалидных данных (ожидается ошибка с понятным сообщением).
  5. Безопасность:

    • Проверить защиту от SQL-инъекций в полях comment и других.
    • Проверить, что метод требует авторизации, если это предусмотрено.
  6. Производительность:

    • Проверить время отклика при максимальном количестве отправлений.
  7. Дополнительные проверки:

    • Проверить, что поле is_leave_at_door корректно влияет на логику доставки.

Пример теста на длину комментария:

{
  "shipments": [{"id": 1, "date": 1686000000}],
  "adress": {"id": 10, "comment": "a".repeat(201), "is_leave_at_door": true},
  "payment_method": "card"
}

Ожидается ошибка из-за превышения лимита в 200 символов.