IMO, нет смысла использовать фиктивную базу данных, если только вы не тестируете обработку соединений. Например, как ведет себя мое приложение, если соединение с базой данных разорвано и т. Д.
Для тестирования SQL вам будет не лучше, чем тестирование на реальной базе данных, которую вы собираетесь использовать в работе. Если вы используете другую базу данных в качестве замены, то есть H2, убедитесь, что вы понимаете, что вы тестируете драйвер БД и базу данных, которые будут отличаться от вашего рабочего развертывания, и это означает, что вы можете не обнаружить потенциальные ошибки в ваших тестах, использующих эту настройку. .
Для тестирования обработки данных вы также можете использовать какой-нибудь макет, но опять же, если вам всегда будет выгоднее использовать реальную базу данных, которую вы будете использовать в производстве, когда вы можете.
Если вы используете Hibernate в качестве поставщика ORM, в рамках настройки интеграционных тестов вы можете заставить его выполнять сценарии DML для загрузки ваших данных в целях тестирования.