Ответ 1
Просто передайте SQL-запрос и сравните возвращаемый результат с ожидаемым результатом. Просто. JUnit - это unit test framework, вы можете использовать это.
Для сложного тестирования модулей базы данных просмотрите DBUnit.
У меня есть класс DBHandler
, который берет запрос, запускает его через SQL-сервер, проверяет наличие ошибок и возвращает результат. Как я могу unit test этот класс?
Изменить. Я постараюсь уточнить:
DBHandler
отвечает за передачу запроса на сервер. Чтобы проверить, что на самом деле это делает, выдает правильные исключения и т.д., Я хочу подключить его к макету DB, который я буду заполнять. Мой вопрос: как это сделать? Как я могу создать макет "сервера", который обрабатывает вызовы?
Просто передайте SQL-запрос и сравните возвращаемый результат с ожидаемым результатом. Просто. JUnit - это unit test framework, вы можете использовать это.
Для сложного тестирования модулей базы данных просмотрите DBUnit.
Я бы использовал инъекцию зависимостей для передачи в соединении с базой данных или что-то подобное, чтобы все это можно было издеваться над тестами. Затем вы можете написать тесты, в которых макет запроса выдает исключения, возвращает различные ошибки или действительные результаты. Затем ваши тесты просто проверяют правильность выполнения DBHandler
.
Вам нужно либо использовать базу данных тестирования в памяти, которую вы создаете и заполняете при настройке, либо сделать все ваши транзакции транзакциями, чтобы они не изменяли вашу тестовую базу данных.
Вам нужно будет беспокоиться о наличии данных.
Если вы используете Spring, они поддерживают транзакционные модульные тесты.
Не понятно, что вы просите. Вы уже знаете об JUnit. Как вы думаете, что вам не хватает?
Быстрое решение для mock db работает следующим образом:
Настройка тестового сервера HSQLDB независимо от вашего приложения.
Заполните тестовые данные.
Используйте условный код, в котором вы подключитесь к своей реальной базе данных, чтобы подключитесь к тестовому серверу. свойство в вашем приложении может контролируйте это.
Проверьте приложение