티스토리 뷰

728x90

1. UserRepository 테스트 생성
2. 테스트를 위해 @DataJpaTest(showSql = true) 를 붙여줌.
3. test 설정을 위해 test-application.properties를 생성
 3-1. 작성(복붙)

4. UserRepository가 Jpa가 H2랑 제대로 연결되었는지 확인을 위한 테스트 생성
 4-1. User Entity를 적당히 생성.
 4-2. User Entity save 호출
 4-3. assertThat을 통해 not Null 이면 성공

5. 우리가 궁금한 것은 findByIdAndStatus 메서드와 findByEmailAndStatus 메서드가 제대로 동작하는지 여부임.
A) findByIdAndStatus 정상 조회
 A-1. User Entity를 적당히 생성해 데이터를 저장
 A-2. 결과값이 존재 여부를 확인

B) findByIdAndStatus 데이터가 없을 경우
 B-1. User Entity를 적당히 생성하되, 유저 상태를 PENDING으로 설정 후 데이터를 저장
 B-2. 결과값이 isEmpty()인지 확인

C) findByEmailAndStatus 정상 조회
 C-1. User Entity를 적당히 생성해 데이터를 저장
 C-2. 결과값이 존재 여부를 확인

D) findByEmailAndStatus 데이터가 없을 경우
 D-1. User Entity를 적당히 생성하되, 유저 상태를 PENDING으로 설정 후 데이터를 저장
 D-2. 결과값이 isEmpty()인지 확인


6. 단독으로는 실행이 됨. 하지만, 전체 테스트를 돌릴 경우 실패함.
 -> 병렬로 처리될 때 동시성 제어가 안됨.

7. Test 코드 내에서 User Entity 값이 중복되어 생성되고 삽입되는 문제를 해결하기 위해 테스트할 때 준비된 값을 사용하도록 함.
 -> @Sql(URL)

8. resources 폴더 내에 sql 파일을 생성해준 후 어노테이션에 SQL 파일을 지정해줌.
 -> 이제 필요없어진 JPA와 H2 테스트를 제거

9. 이제 전체 동작 시키면 정상 동작함.

10. post Repository는 테스트할 메서드가 없으므로 패스.
 -> 이전 강의에서 얘기했던, 잘 동작하도록 만들어진 JPA를 테스트할 필요는 없다는 것 참고.

11. 커버리지 측정 시 100% 나옴.

728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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 29 30
글 보관함