본문 바로가기

TIL

[TIL] @DataJpaTest

@DataJpaTest

  • 오직 JPA 컴포넌트들에 초점을 맞춘 JPA 테스트를 위한 어노테이션이다.
  • @DataJpaTest를 사용하는 것은 full auto-configuration을 비활성화하고 대신 JPA 테스트와 관련된 configuration만 적용한다.
  • 기본적으로 @DataJpaTest가 지정된 테스트들은 트랜잭션이고 각 테스트 마지막에 롤백된다. 또한 내장된 메모리 내 데이터베이스를 사용한다.(명시적이거나 보통 auto-configured DataSource를 대체하여) @AutoConfigureTestDatabase 어노테이션은 이 세팅을 오버라이드 하는데 사용될 수 있다.(내장 메모리 데이터베이스말고 다른 DB를 선택할 수 있다는 뜻인듯)
  • SQL 쿼리들은 기본적으로 spring.jpa.show-sql속성을 true로 설정하므로써 로깅된다. 이것은 showSQL 속성을 사용해 비활성화 할 수 있다.(ex @DataJpaTest(showSql = false))
  • 만약 너가  너의 모든 어플리케이션 Configuration을 로드하면서 embedded database를 사용하고 싶다면, @DataJpaTest보다 @SpringBootTest(@AutoConfigureTestDatabase이 결합되어있는)를 사용하는 것을 고려해야한다.
  • JUnit 4를 사용할 때, 이 어노테이션은 @RunWith(SpringRunner.class)와 반드시 함께 사용되어야한다.

 

@Transactional 을 따로 지정하지 않고 임베디드 디비를 설정없이 사용할 수 있기 때문에 엔티티를 테스트할 때는 @SpringBootTest보다 @DatajpaTest를 사용할 것 같다.

 


참고 :

https://cobbybb.tistory.com/23

 

@SpringBootTest / @DataJpaTest 차이점 과 JPA 영속성 컨텍스트

Memory db를 이용한 Repository Test Repository layer의 테스트를 위해서 내장 Memory DB를 많이 사용합니다. Memory DB 를 사용하는 방법도 천차만별일텐데 크게는 2가지 정도라 생각됩니다. @SpringBootTest +..

cobbybb.tistory.com

 

'TIL' 카테고리의 다른 글

[TIL] @Secured, @PreAuthorize 비교  (0) 2022.05.08
[TIL] 영속성 전이 CASCADE  (0) 2022.05.04
TDD의 장점  (0) 2022.04.08
[TIL 2022-3-7] JPQL, BOJ10830 행렬 제곱  (0) 2022.03.08
[TIL 2022-3-6] 평범한 배낭  (0) 2022.03.07