[스프링부트 #10] TEST #2 - test profile

김지현·2023년 12월 5일
0

테스트 코드를 작성하다 보면 실제로 사용하는 DB에 테스트 코드가 영향을 미치는 경우가 발생할 수 있다. 이를 방지하고자 테스트용 개발 환경을 분리하여 사용할 수 있다. prpoperties 또는 yml test 설정 파일을 통해 테스트 환경을 분리해보자

application-test.properties

test 환경에서 H2 test 데이터베이스를 사용하였다. MYSQL 문법을 사용하므로 MODE=MySQL 설정을 추가해준다.

# Test profile
spring.config.activate.on-profile=test

spring.datasource.url=jdbc:h2:mem:testdb;MODE=MySQL
spring.datasource.driverClassName=org.h2.Driver
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect
spring.jpa.properties.hibernate.format_sql=true

application-test.yml

spring.config.activate.on-profile 을 test로 설정해준다. test 파일을 따로 분리하지 않고 application.yml 파일에 같이 작성해도 된다.

# Test profile
spring:
  config:
    activate:
      on-profile: test

  datasource:
    url: jdbc:h2:mem:testdb;MODE=MySQL
    driverClassName: org.h2.Driver

  jpa:
    show-sql: true
    hibernate:
      ddl-auto: update
      dialect: org.hibernate.dialect.H2Dialect
      format_sql: true

이렇게 설정 파일을 작성해주면 test profile을 사용할 수 있다. 실제 테스트 클래스에서 @ActiveProfiles("test") 애너테이션을 붙여주면 test 설정 파일로 해당 테스트 클래스를 테스트 할 수 있다.

0개의 댓글