해결된 질문
작성
·
574
·
수정됨
0
안녕하세요 !
계속 테스트 검증하는 과정을 반복하다보니 궁금증이 생겨 질문드립니다.
강사님이 검증 코드를 작성하실 때
이 강의 코드로 예시를 들면memberService.getMemberRepository();
가memberRepository1
변수로 있음에도 불구하고assertThat(memberRepository1).isSameAs(memberRepository);
으로 작성하지 않고assertThat(memberService.getMemberRepository()).isSameAs(memberRepository);
로 작성하시더라구요.
이 강의에서뿐만 아니라 지금까지 다른 강의에서도 검증 코드를 작성하실 때 변수를 사용하시지 않는 것 같았는데,
혹시 이렇게 작성하시는 이유가 따로 있을까요?
답변 1
1
안녕하세요. Heyna님, 공식 서포터즈 David입니다.
테스트 의도를 드러내기 위해서 그렇다고 생각합니다.
memberRepository1, memberRepository2를 사용한 것은 아래 프린트 하는 부분에서 수강생 분들이 헷갈리지 않도록 명확하게 서로 다른 memberRepository임을 나타내기 위해서로 보입니다. 즉, 테스트 검증을 위해 사용하는 코드가 아니었습니다. 결과만 놓고 보면 memberRepository1, memberRepository2 변수를 검증에 사용해도 동일한 결과가 나오지만요.
본 강의 테스트에서 나타내고 싶은 의도는 빈으로 등록된 MemberServiceImpl, OrderServiceImpl에서 각각의 빈이 가지고 있는 memberRepository를 가져왔을 때(getMembreRepository()), 빈으로 등록되어 있는 memberRepository와 동일한가?라고 생각됩니다.
따라서, 테스트와 별개로 수강생 분들의 이해를 돕기 위해 추가된 변수(memberRepository1, memberRepository2)를 사용하지 않고, getMemberRepository()를 사용하신 것 같습니다.
감사합니다.
친절한 답변 감사합니다!
저도 같은 생각이었는데
혹시 제 생각과 다른 의도나 코드 작성법이 따로 있는 건지 궁금하여 질문 드렸습니다 ㅎㅎ