@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 |