< application.yml >
jpa:
open-in-view: true
hibernate:
ddl-auto: #해당 부분의 다양한 옵션을 통해 DB TEST 환경 세팅 가능
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
use-new-id-generator-mappings: false
show-sql: true
properties:
hibernate.format_sql: true
create
: 기존 테이블을 삭제하고 새로 생성 [ DROP + CREATE ]
create-drop
: CREATE 속성에 추가로 어플리케이션을 종료할 때 생성한 DDL을 제거 [ DROP + CREATE + DROP ]
update
: DB 테이블과 엔티티 매핑 정보를 비교해서 변경 사항만 수정 [ 테이블이 없을 경우 CREATE ]
validate
: DB 테이블과 엔티티 매핑정보를 비교해서 차이가 있으면 경고를 남기고 어플리케이션을 실행하지 않음
none
: 자동 생성 기능을 사용하지 않음
출처: https://dev-coco.tistory.com/85 [슬기로운 개발생활😃]
@SpringBootTest
- 기본 스프링부트 테스트 환경을 제공해준다. (초기화 x)
@DataJpaTest
- 인 메모리 형태의 내장형 DB를 사용하여 테스트한다. ex) H2 DB
- 기본적으로
@Transactional
이 설정되어 있어 쿼리가 실제로 실행되지는 않는다.
@AutoConfigureTestDatabase(replace = Replace.NONE)
@DataJpaTest
를 이용하여 테스트 시 인 메모리 DB가 아닌 실제 DB를 이용하여
테스트 하고 싶은 경우 해당 어노테이션을 추가해주면 된다.
@Commit
@DataJpaTest
를 이용하여 테스트 시 쿼리를 실제로 실행 후 commit하여 연결된 DB에 쿼리의 내용이 적용되도록한다.