테스트에는 두가지 종류가 있다.
1. 단위테스트
- 각 테스트가 독립적이어야 함
- 의존성을 모킹하고, 테스트 대상이 되는 메서드나 클래스의 행위에만 집중해서 테스트를 한다.
- 의존성을 최소화하고 독립적인 테스트를 추구하기 때문에 DB 와 연결해서 데이터를 가져오지 않고
객체를 새로 생성하는 방식으로 데이터를 주입한다.
2. 통합테스트
시스템 테스트의 경우, DB 에 있는 실제 객체 를 사용한다.
때문에 테스트 시작시 테스트 데이터를 DB 에 사전 삽입하는 방식을 사용한다.
시스템이 어떻게 함께 작동하는지를 검증하는 방식이다.
Dummy Data 자동으로 생성하는 라이브러리
- DataFaker
- JavaFaker
https://www.baeldung.com/java-faker
테스트 데이터 -> DB 에 삽입하는 방법
- @DataJpaTest
- TestEntityManager
등을 활용하여 테스트 종료 후에 DB 상태를 원래대로 복원할 수 있음
Test Code 짜는 일정
0. 이미 짜여있는 프로젝트에서 단위 테스트 적용해보기 [3시간] 목
1. 코드 리팩토링 -> 단위 테스트에 적합한 방식으로 [4시간] 목
2. 주요 기능 - 결제 포인트 차감 등에 대한 단위 테스트 작성[5시간] 목 / 금
성능 테스트
3. AOP 를 통한 성능 테스트 방법 이해[5시간] 금
4. 기존 테스트 코드에 성능 테스팅을 위한 코드 변경[5시간] 금 / 토
5. Dummy data 생성을 위한 java-faker 도입[10시간] 토
5. querydsl 도입[20시간]
6. 성능 개선 확인 테스트[10시간]
댓글