Как протестируешь выполнение запроса данных из бд и их возвращение на веб-сервис
Python
Middle
Без компании
Как протестируешь выполнение запроса данных из бд и их возвращение на веб-сервис
Ответы
Для тестирования запросов к БД и их возврата через веб-сервис можно использовать комбинацию unittest и mock:
```
import unittest
from unittest.mock import patch
from myapp import app, get_data_from_db
class TestDBWebService(unittest.TestCase):
@patch('myapp.db_connector.execute_query')
def test_db_query_and_response(self, mock_execute):
# Подготовка тестовых данных
mock_data = [{'id': 1, 'name': 'Test'}]
mock_execute.return_value = mock_data
# Тестирование endpoint
with app.test_client() as client:
response = client.get('/api/data')
# Проверки
self.assertEqual(response.status_code, 200)
self.assertEqual(response.json, {'data': mock_data})
mock_execute.assert_called_once_with("SELECT * FROM test_table")
```
Ключевые моменты:
- Используем mock для замены реального подключения к БД
- Проверяем корректность HTTP-ответа
- Убеждаемся, что запрос к БД был выполнен с правильным SQL
- Проверяем преобразование данных из БД в JSON-ответ
Для интеграционных тестов можно использовать тестовую БД с предзаполненными данными.