티스토리 뷰
SpringBootTest 어노테이션을 통해서 EntityManager를 Autowired하고 데이터를 조회하는 방법도 있지만,
모든 Beans를 스캔하는 방식을 사용하고 있기 때문에 프로젝트가 무거워질수록 테스트 시간이 오래 걸릴 수 있다.
원하는 부분에 대해서만 쿼리 테스트를 진행하고싶다면, DataJpaTest 어노테이션으로 데이터베이스 관련해서만 테스트해볼 수 있다.
하지만.. 원격 DB를 가리키는 경우 드라마틱한 수행시간 차이는 느낄 수가 없었다.
JUnit5 기준 JPA(+ QueryDSL)만 테스트하고 싶은 경우 다음 어노테이션을 추가한다.
(JUnit4는 @RunWith(SpringRunner.class)까지 추가)
1. AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
-> NONE : 데이터베이스의 소스를 프로젝트 Active Profiles에 정의되어있는 데이터베이스로 가리키도록 하는 옵션
2. DataJpaTest
-> JPA 테스트 명시
다음은 테스트용 풀 코드! TestEntity라는 Entity가 있다고 가정한다.
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
@DataJpaTest
public class JPATests {
@Autowired
private TestEntityManager testEntityManager;
@Test
@Rollback(value = false)
public void testEntityCreator() throws Exception {
EntityManager em = testEntityManager.getEntityManager();
TestEntity testEntity = new TestEntity();
testEntity.setValue1("test!");
em.persist(testEntity);
}
}
- @Rollback(value = false) : 테스트 진행 시 롤백을 하지 않도록 (기본적으로는 모든 테스트 작업은 rollback이 진행되도록 되어있음)
반응형
'Spring Boot' 카테고리의 다른 글
[AWS] EB에 SpringBoot 올리기 (0) | 2022.09.12 |
---|---|
[Spring Boot] Cause: invalid source release: 11 (0) | 2022.09.12 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- multiple commands produce
- F
- cocoapods
- TextInput 한글
- Monterey
- idea
- env: python
- idea command
- local
- HTML
- DEX
- png
- ReactNative 한글
- proguard
- zip
- Podfile
- jpeg
- Gif
- 프로가드
- WKwebview
- mac command
- uicollecionview
- 12.5
- multidex
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함