작성
·
280
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를 사용해서 영속 컨텍스트를 비울 수 있는 방법은 없나요???