Ответ
Да, ручное написание SQL-запросов — распространенная практика в тестировании для:
- Верификации данных в БД после выполнения тестовых действий (например, создание записи через UI/API).
- Подготовки и очистки тестовых данных.
- Анализа сложных связей между сущностями.
- Проверки корректности бизнес-логики, реализованной на уровне базы данных.
Примеры запросов:
- Проверка создания заказа через API:
-- После выполнения API-запроса POST /orders SELECT id, status, total_amount, user_id FROM orders WHERE user_id = 1001 ORDER BY created_at DESC LIMIT 1; - Подготовка тестовых данных (фикстура):
INSERT INTO products (sku, name, price, stock) VALUES ('TEST-001', 'Тестовый товар', 999.99, 10); - Проверка целостности данных и связей (JOIN):
-- Проверка, что у всех заказов есть валидный пользователь SELECT o.id, o.user_id, u.email FROM orders o LEFT JOIN users u ON o.user_id = u.id WHERE u.id IS NULL; -- Находит "битые" связиТакой подход требует понимания схемы БД и внимательности к синтаксису, но дает полный контроль для глубокой проверки.