Как протестируешь выполнение запроса данных из бд и их возвращение на веб-сервис

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-ответ Для интеграционных тестов можно использовать тестовую БД с предзаполненными данными.