База данных Mock, MockMvc - PullRequest
       4

База данных Mock, MockMvc

0 голосов
/ 04 октября 2019

У меня есть простое REST-приложение с базой данных MySQL, все работает нормально, но во время тестирования нам нужно создать фиктивный объект и протестировать его или протестировать через базу данных Mock? Пустой объект имеет довольно большой конструктор и вложенные классы, что требует много работы.

Ответы [ 3 ]

1 голос
/ 04 октября 2019

IMO, нет смысла использовать фиктивную базу данных, если только вы не тестируете обработку соединений. Например, как ведет себя мое приложение, если соединение с базой данных разорвано и т. Д.

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

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

Если вы используете Hibernate в качестве поставщика ORM, в рамках настройки интеграционных тестов вы можете заставить его выполнять сценарии DML для загрузки ваших данных в целях тестирования.

0 голосов
/ 04 октября 2019

Для интеграционных тестов вы должны рассмотреть возможность использования базы данных в памяти, такой как H2.

H2 поддерживает режимы совместимости для IBM DB2, Apache Derby, HSQLDB, Microsoft SQL Server, MySQL, Oracle и PostgreSQL. Чтобы использовать режим MySQL, используйте URL базы данных, как показано ниже (и обратитесь к документации для получения дополнительной информации):

jdbc:h2:~/test;MODE=MySQL;DATABASE_TO_LOWER=TRUE 
0 голосов
/ 04 октября 2019

Если вы используете весеннюю загрузку, то H2 - одна из самых популярных в памяти баз данных. Spring Boot имеет очень хорошую интеграцию для H2.

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