programing

메모리 DB를 사용한 스프링 부트 테스트

newnotes 2023. 3. 26. 11:45
반응형

메모리 DB를 사용한 스프링 부트 테스트

Spring Boot을 사용하여 Spring 웹 프로젝트를 만들었습니다.테스트에 관한 실천을 이해하고 싶다.초기 schema.sql을 사용하는 junit에 hsql 또는 h2와 같은 메모리 내장 데이터베이스가 필요합니다.메인 어플리케이션에서는 mysql 또는 oracle이라고 할 수 있습니다.

Spring Boot 이외의 프로젝트에서는 보통 웹 어플리케이션에서 참조되는 applicationcontext.xml이 별도로 존재하며 테스트에는 applicationContext-text.xml을 사용합니다.

Spring Boot에서는 모든 것이 자동으로 생성되고 Spring Boot도 오피니언이 됩니다.Junits의 경우 메모리 DB에 내장되어 있고 어플리케이션의 경우 MySQL과 같은 외부 DB를 사용하여 설정하는 방법을 알고 싶습니다.

생각할 수 있는 해결책 중 하나는 프로파일을 사용하는 것입니다.application.properties 및 application-test.properties의 2가지 속성을 지정합니다.시험 프로파일을 사용해서 내 유니트를 만들죠

제가 취해야 할 접근법에 대한 추천 사항.

프로파일은 실제로 권장되는 접근법입니다.메모리 내 실장을 디폴트 프로파일로 하는 것이 좋습니다(실제 데이터를 변경하지 않기 때문에 다른 사람이 실수로 실제 데이터베이스에 대해 실행했을 경우에 대비하여 디폴트로 하는 것이 좋습니다).개인적으로는 모든 외부 구성을 1개로 묶는 것을 선호합니다.application.yml파일, 하지만 그건 정말 당신에게 달렸어외부 설정에서는, 유효한 드라이버 클래스와 URL 를 입력할 필요가 있습니다.

spring:
  datasource:
    driverClassName: org.h2.Driver
    url: jdbc:h2:mem:test;MODE=PostgreSQL
    schema: classpath:/schema.sql

---

spring:
  profiles: local
  datasource:
    url: jdbc:postgresql://localhost/test
    username: root
    password: changeme
    driverClassName: org.postgresql.Driver
    schema:

(H2는 postgres 호환모드가 있기 때문에 postgres를 생산하기 위한 보완으로 매우 좋습니다.)

언급URL : https://stackoverflow.com/questions/19603324/spring-boot-testing-using-in-memory-db

반응형