2021-zzimkkong icon indicating copy to clipboard operation
2021-zzimkkong copied to clipboard

[BE] JPA 조회 로직을 테스트 할 때 EntityManger를 초기화해준다. 비교 대상 클래스에 equals, hashcode를 오버라이딩한다.

Open tributetothemoon opened this issue 3 years ago • 0 comments

기능 상세

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

문제상황

MapRepositoryTest.findByIdFetchJoinSpace()

image

tributetothemoon avatar Nov 20 '21 11:11 tributetothemoon