인프런 커뮤니티 질문&답변

인영님의 프로필 이미지

작성한 질문수

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

스프링 JdbcTemplate

MemberServiceIntegrationTest 에서 Service대신 Repository로 테스트하는 이유가 궁금해요

작성

·

70

0

6강 스프링 DB 접근 기술.pdf 내용을 보면

MemberServiceIntegrationTest 에서는 MemberService로 join하고 Id를 찾는 내용은 Repository 를 통해 수행하는데요.

service에 대한 테스트 코드기때문에 이전에 작성한 MemberServiceTest에서처럼 Service로 일관되게 사용하는게 맞지않나요?

 

MemberServiceIntegrationTest .java

//When
Long saveId = memberService.join(member);
//Then
Member findMember = memberRepository.findById(saveId).get();
assertEquals(member.getName(), findMember.getName());

MemberServiceTest.java

Long saveId = memberService.join(member);

Member findMember = memberService.findOne(saveId).get();
assertThat(member.getName()).isEqualTo(findMember.getName());

답변 1

0

안녕하세요. 인영님, 공식 서포터즈 OMG입니다.

회원 서비스(MemberService)에 대한 단위 테스트는 MemberServiceTest 클래스에서 진행하였고,

회원 저장소(MemoryMemberRepository)에 대한 테스트는 MemoryMemberRepositoryTest 클래스에서 진행하였습니다.

MemberIntegrationTest는 회원서비와 회원저장소(실제DB와의) 의 유기적인 동작과 흐름이 정상적으로 동작하기 위한테스트로 MemberService객체와 MemberRepository객체 로 검증하고 있습니다.

MemberIntegrationTest는 각각의 기능테스트가 아닌 우리가 개발한 애플리케이션 로직의 통합테스트를 하기 위한 클래스이기 때문이라고 이해하시면 될 것 같습니다.

감사합니다.

인영님의 프로필 이미지

작성한 질문수

질문하기