인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

LetsGoHigh님의 프로필 이미지
LetsGoHigh

작성한 질문수

Practical Testing: 실용적인 테스트 가이드

Mockito로 Stubbing하기

Stubbing을 주로 외부 api를 호출할 때 사용하나요?

작성

·

669

·

수정됨

0

안녕하세요~ 'Mockito로 Stubbing하기' 강의를 듣고 궁금한 내용이 있습니다.

메일을 전송하는 부분을 stubbing하셨는데요.

보통 어떤 경우에 실무에서 stubbing하여 테스트를 작성하나요? 감이 잘 안잡히네요..

제가 이해한건 아래처럼 이해했습니다.

  1. sendMail 메서드에 대한 테스트는 '메일만 전송'하는 테스트를 작성한다.

  2. sendOrderStatisticsMail 테스트를 작성하는 도중 sendMail 부분은 이미 '1번'에서 따로 테스트 케이스를 작성했으므로 넘어가도 무방하다. 따라서 여기는 stubbing하여 간단하게 넘어간다. 즉, 이번 예시에서는 메일이지만 확장하여 생각해본다면 외부 api를 호출하는 경우에는 stubbing을 진행한다.

 

답변 2

0

박우빈님의 프로필 이미지
박우빈
지식공유자

안녕하세요, John J님! :)

맞습니다. 기본적으로 외부 API에 대해서 mocking 을 하게 되는데요.
조금 더 확장해서 생각한다면 내가 제어할 수 없는 행위 에 대해서 mocking을 사용한다고 보시면 됩니다.

메일 전송의 경우에는 mocking하지 않는다면 테스트를 수행할 때마다 어딘가로 메일을 보내거나 해야할텐데.. 아무리 테스트 계정에 메일을 전송하도록 구성한다고 해도 테스트 수행시간 측면이나, 애초에 테스트하고자 하는 내용이 아니기 때문에 메일 전송은 [성공 or 실패]를 가정(stubbing)하고 테스트를 작성하는 것이 좋은 것이죠.

감사합니다. :)

0

LetsGoHigh님의 프로필 이미지
LetsGoHigh
질문자

이제 보니 stub이 아니라 mock인거같기도 하네요..

LetsGoHigh님의 프로필 이미지
LetsGoHigh

작성한 질문수

질문하기