База данных для тестов Java

90
15 января 2021, 18:40

Пишу приложение на java с использованием базы данных postgre sql. Свойства прописаны в файле \resourses\application.yml

spring:
  application:
    name: to_do_list
  datasource:
    driverClassName: org.postgresql.Driver
    url: jdbc:postgresql://localhost:5432/to_do_list
    username: postgres
    password: ******
  jpa:
    database-platform: org.hibernate.dialect.PostgreSQLDialect
    hibernate:
      ddl-auto: update
server:
  port: 80

Для тестирования хочется использовать другую базу, например h2 (in memory), чтобы не трогать данные в основной. Как мне дать понять приложению, что для тестов нужна другая база? Где это можно прописать?

Answer 1

Можно пойти еще один путем. Использовать профиля для спринга:

application.yml:

spring:
  application:
    name: to_do_list
server:
  port: 80

application-pg.yml:

datasource:
  driverClassName: org.postgresql.Driver
  url: jdbc:postgresql://localhost:5432/to_do_list
  username: postgres
  password: ******
jpa:
  database-platform: org.hibernate.dialect.PostgreSQLDialect
  hibernate:
    ddl-auto: update

application-h2.yml:

datasource:
    driverClassName: org.h2.Driver
    url: jdbc:h2:mem:test_bd;
  jpa:
    database-platform: org.hibernate.dialect.H2Dialect
    hibernate:
      ddl-auto: create-drop

И потом при запуске приложения указать профиль, который будете использовать:

-Dspring.profiles.active=h2

Answer 2

Благодарю @Chubatiy за комментарий. Создал файл \test\resources\application.yml со следующим содержанием:

spring:
  application:
    name: to_do_list
  datasource:
    driverClassName: org.h2.Driver
    url: jdbc:h2:mem:test_bd;
  jpa:
    database-platform: org.hibernate.dialect.H2Dialect
    hibernate:
      ddl-auto: create-drop
server:
  port: 80

Все работает как мне хотелось.

READ ALSO
Как правильно вернуть массив из метода?

Как правильно вернуть массив из метода?

Есть метод, который делает положительные числа отрицательными и наоборот

97
Смена звука уведомления

Смена звука уведомления

Жму пункт меню:

86
Картинки и числа Android Studio

Картинки и числа Android Studio

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

94
Не могу отобразить данные с сервера

Не могу отобразить данные с сервера

Не могу отобразить данные, которые получаю с сервера:

78