Приведи пример тестирования DELETE
1️⃣ Как кратко ответить
Тестирование DELETE-запроса включает проверку успешного удаления ресурса, валидацию корректного HTTP-статуса (обычно 200 OK или 204 No Content), проверку отсутствия ресурса после удаления и тестирование граничных случаев, таких как попытка удаления несуществующего ресурса.
2️⃣ Подробное объяснение темы
DELETE-запросы используются в API для удаления ресурсов. Тестирование DELETE-запросов важно для обеспечения корректного поведения системы при удалении данных. Рассмотрим, как это делается на примере RESTful API.
Зачем нужно тестировать DELETE-запросы
- Проверка корректности удаления: Убедиться, что ресурс действительно удален из системы.
- Проверка статуса ответа: Убедиться, что сервер возвращает правильный HTTP-статус.
- Проверка безопасности: Убедиться, что удаление возможно только для авторизованных пользователей.
- Проверка граничных случаев: Убедиться, что система корректно обрабатывает попытки удаления несуществующих ресурсов.
Пример тестирования DELETE-запроса
Предположим, у нас есть API для управления списком задач. Мы хотим протестировать DELETE-запрос для удаления задачи.
Шаги тестирования
- Создание тестовой задачи: Сначала создаем задачу, чтобы было что удалять.
- Удаление задачи: Отправляем DELETE-запрос для удаления созданной задачи.
- Проверка статуса ответа: Убедимся, что сервер возвращает статус 200 OK или 204 No Content.
- Проверка отсутствия задачи: Попробуем получить задачу и убедимся, что она больше не существует.
- Тестирование граничных случаев: Попробуем удалить несуществующую задачу и проверим, что сервер возвращает корректный статус ошибки, например, 404 Not Found.
Пример кода на Python с использованием библиотеки requests
import requests
# URL API
base_url = "http://example.com/api/tasks"
# 1. Создание тестовой задачи
create_response = requests.post(base_url, json={"title": "Test Task"})
task_id = create_response.json().get("id")
# 2. Удаление задачи
delete_response = requests.delete(f"{base_url}/{task_id}")
# 3. Проверка статуса ответа
assert delete_response.status_code in [200, 204], "Удаление задачи не удалось"
# 4. Проверка отсутствия задачи
get_response = requests.get(f"{base_url}/{task_id}")
assert get_response.status_code == 404, "Задача все еще существует после удаления"
# 5. Тестирование граничных случаев
non_existent_delete_response = requests.delete(f"{base_url}/non-existent-id")
assert non_existent_delete_response.status_code == 404, "Удаление несуществующей задачи не вернуло 404"
- Импорт библиотеки
requests: Используется для отправки HTTP-запросов. - Определение базового URL: Указывает на API, с которым будем работать.
- Создание задачи: Отправляем POST-запрос для создания новой задачи и получаем её
id. - Удаление задачи: Отправляем DELETE-запрос по URL задачи.
- Проверка статуса ответа: Убеждаемся, что статус ответа 200 или 204, что указывает на успешное удаление.
- Проверка отсутствия задачи: Отправляем GET-запрос для проверки, что задача больше не существует.
- Тестирование граничных случаев: Пытаемся удалить несуществующую задачу и проверяем, что возвращается статус 404.
Тестирование DELETE-запросов помогает убедиться, что система корректно обрабатывает операции удаления, что важно для поддержания целостности данных и безопасности приложения.
🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!
Подписаться