• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

Spring Data Jpa를 사용한 테스트 문의

22.08.04 02:18 작성 조회수 213

0

안녕하세요.
JpaRepository를 사용해서 테스트를 할 때 방법이 맞는지 궁금해서 문의드립니다.


1. saveMember = memberRepository.save(member)
2. findMember = memberRepository.findById(saveMember.getId())

이렇게 테스트코드를 짜면, 실제로 DB에서 find하는 것이 아니라 영속컨텍스트에서 해당 엔티티를 찾아서 반환하는 것으로
알고 있습니다.

만약에 insert 쿼리가 나가는 것과 실제 DB에서 find하기 위해서 아래와 같이 테스트 코드를 짰는데요.

1. saveMember = memberRepository.save(member)
추가) memberRepository.flush()
추가) em.clear()
2. findMember = memberRepository.findById(saveMember.getId())

memberRepository의 flush() 메소드를 통해 DB에 반영하고, 엔티티매니저의 clear()를 통해 영속 컨텍스트를 비웠습니다.

질문)여기서 의문점은 JpaRepository에는 clear() 메소드가 없어서 영속 컨텍스트를 비우기 위해선 엔티티매니저를 테스트 클래스에서 주입받아야 했습니다.
JpaRepository를 사용해서 영속 컨텍스트를 비울 수 있는 방법은 없나요???

 

답변 1

답변을 작성해보세요.

1

안녕하세요. 이화평님

JpaRepository에는 clear()가 없습니다.

감사합니다.