Как вы можете использовать h2 в данных памяти в Spring Boot API? - PullRequest
1 голос
/ 12 июля 2019

Мы создаем новый API, используя Spring-Boot.Для тестирования мы хотим использовать h2 в базе данных памяти для тестирования нашего API.

Как настроить h2 db, чтобы Spring-boot мог использовать эти данные во время этого сеанса?

В идеальном случае я могу вызвать GET и получить все, что было создано вмой h2 db

1 Ответ

2 голосов
/ 13 июля 2019

В вашей тестовой папке создайте класс Defaultdatasourceconfig, который будет иметь все необходимые bean-компоненты (например, DSbean, TXManager bean и т. Д.). Для нового метода DriverManagerDataSource () передайте необходимые свойства источника данных (создайте класс свойств с полями ниже и аннотируйте их @Value и именами свойств), добавьте эти свойства в файл application-test.properties

db.hsql.url=jdbc:hsqldb:mem:testdb
db.hsql.username=sa
db.hsql.password=sa
db.hsql.driver.name=org.hsqldb.jdbc.JDBCDriver
spring.datasource.platform=hsqldb

Если вы хотите загрузить конкретные таблицы, относящиеся только к вашему сценарию использования, добавьте это в файлы prperties spring.datasource.schema = classpath: abc.sql и добавьте abc.sql в ту же папку, что и application-test.prpoerties. Таким образом, когда вы запускаете тест, при создании контекста он использует hsql db в качестве Primary db, загружает таблицу, выполняя sql, и использует этот db. вам нужно будет добавить драйвер hsql в ваш путь к классам. То же самое можно сделать с h2

...