2021-zzimkkong
2021-zzimkkong copied to clipboard
[BE] JPA 조회 로직을 테스트 할 때 EntityManger를 초기화해준다. 비교 대상 클래스에 equals, hashcode를 오버라이딩한다.
기능 상세
- 테스트 데이터를 JPA를 이용해 세팅해준 후, 이를 초기화하지 않고 있는 부분들이 있습니다.
- 이 상태에서 조회 쿼리를 실행하면 영속성 컨텍스트에 저장된 테스트 데이터를 불러오기 때문에 동일성에서까지 검증이 성공합니다.
- 하지만 flush, clear를 해준 후 테스트를 돌리면 동등성 비교에 실패하는 경우가 있음을 확인했습니다.
- fetch와 같은 JPQL을 적용 한 테스트 들에 대해 엔티티 매니저를 초기화해야 엄밀하게 비교할 수 있다고 생각되었습니다.
- 또한 전반적으로 equals, hashcode를 재정의해주어야할 필요가 있을 것 같습니다.
문제상황
MapRepositoryTest.findByIdFetchJoinSpace()