Как выполнить юнит-тест SQL-запроса? - PullRequest
10 голосов
/ 24 ноября 2010

У меня есть класс DBHandler, который принимает запрос, запускает его через SQL-сервер, проверяет ошибки и возвращает результат. Как я могу провести модульное тестирование этого класса?

Редактировать : Я постараюсь быть более точным: DBHandler отвечает за передачу запроса на сервер. Чтобы проверить, действительно ли он это делает, выдает правильные исключения и т. Д., Я хочу подключить его к фиктивной БД, которую я заполню. У меня вопрос - как это сделать? Как я могу создать фиктивный "сервер", который обрабатывает звонки?

Ответы [ 4 ]

7 голосов
/ 24 ноября 2010

Просто передайте SQL-запрос и сравните возвращаемый результат с ожидаемым. Просто. JUnit - это фреймворк для модульных тестов, вы можете использовать это.

Для сложного модульного тестирования базы данных посмотрите DBUnit .

4 голосов
/ 24 ноября 2010

Я бы использовал внедрение зависимостей для передачи соединения с базой данных или чего-то подобного, чтобы все это можно было смоделировать в тестах.Затем вы можете написать тесты, в которых фиктивный запрос генерирует исключения, возвращает различные ошибки или допустимые результаты.Тогда ваши тесты просто проверяют, что DBHandler работает правильно.

0 голосов
/ 24 ноября 2010

Быстрое решение для пробной базы данных работает так:

  • Настройка тестового сервера HSQLDB не зависит от вашего приложения.

  • Заполните данными испытаний.

  • Используйте условный код, где вы подключиться к вашей реальной базе данных, чтобы подключиться к тестовому серверу. собственность в вашем приложении может контролировать это.

  • Тестирование приложения

0 голосов
/ 24 ноября 2010

Вы можете либо использовать тестовую базу данных в памяти, которую вы создаете и заполняете при настройке, либо сделать все свои тесты транзакционными, чтобы они не изменили вашу тестовую базу данных.

Вы будетенадо беспокоиться о наличии данных.

Если вы используете Spring, они поддерживают транзакционные юнит-тесты.

Не понятно, о чем вы спрашиваете.Вы уже знаете о JUnit.Как вы думаете, что вам не хватает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...