public interface MemberRepository extends JpaRepository<Member, Long> {
}
→ 자세히
스프링 데이터 JPA 기반 MemberRepository 과 TeamRepository은 이미 만들었죠?
이게 잘 동작하는지 테스트를 해보겠습니다.
기존에 MemberJpaRepository 에서 만들었던 basicCRUD() 를 그대로 복붙합시다.
@SpringBootTest
@Transactional
class MemberRepositoryTest {
@Autowired MemberRepository memberRepository;
@Test
public void basicCRUD() {
Member member1 = new Member("member1");
Member member2 = new Member("member2");
memberRepository.save(member1);
memberRepository.save(member2);
//단건 조회 검증
Member findMember1 = memberRepository.findById(member1.getId()).get();
Member findMember2 = memberRepository.findById(member2.getId()).get();
assertThat(findMember1).isEqualTo(member1);
assertThat(findMember2).isEqualTo(member2);
//리스트 조회 검증
List<Member> all = memberRepository.findAll();
assertThat(all.size()).isEqualTo(2);
//카운트 검증
long count = memberRepository.count();
assertThat(count).isEqualTo(2);
//삭제 검증
memberRepository.delete(member1);
memberRepository.delete(member2);
long deletedCount = memberRepository.count();
assertThat(deletedCount).isEqualTo(0);
}
}
그대로 테스트를 복붙했는데 테스트를 통과합니다.
즉, 기존 순수 JPA 기반 테스트에서 사용했던 코드를 그대로 스프링 데이터 JPA 리포지토리 기반 테스트로 변경해도 동일한 방식으로 동작합니다.