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

콜라환타사이다님의 프로필 이미지

작성한 질문수

Java/Spring 주니어 개발자를 위한 오답노트

기타 꿀팁

강의내용 중 Fake Repository 질문

작성

·

126

0

안녕하세요. 강의 잘 듣고있습니다.

제가 요즘 TDD에 대해서 이제 막 공부를 시작했습니다. 테스트방법에 대해서 mocking, stubbing이 있더라구요. 강의 내용 중 말씀해주신 FAKE 객체를 만들어서 테스트하는 방식이 Stubbing 방식이란 같은 것일까요? 실무에서도 Mockking 보다는 Stub객체를 만들어서 테스트하는 경우가 더 많은가요?

아직 mocking과 stub객체를 사용해서 테스트 하는 방식의 차이나 목적이 이해가 잘 되지 않아서 질문드립니다.

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

Fake 객체를 만들어 테스트하는 방식은 스텁(Stub)과 유사한 개념입니다. 스텁은 테스트 중에 호출되는 메소드에 대해 미리 정해진 응답을 제공하는 간단한 구현체입니다. 반면, 목킹(Mocking)은 테스트 중에 객체의 특정 동작을 시뮬레이션하고, 해당 동작이 호출되었는지, 어떤 결과를 반환했는지 등을 검증할 수 있습니다.

실무에서는 상황에 따라 목킹과 스텁을 선택적으로 사용합니다. 복잡한 의존성이 있거나, 외부 시스템과의 통신을 대체해야 할 때는 목킹을 사용하고, 간단한 데이터 반환 등은 스텁을 사용할 수 있습니다. 따라서 어느 하나가 더 많이 사용된다기보다는 테스트하고자 하는 상황과 목적에 따라 적절한 방법을 선택하는 것이 중요합니다.

목킹과 스텁을 사용하는 목적의 차이를 알고 싶으시다면, 목킹은 테스트하려는 코드와 외부 컴포넌트 사이의 상호작용을 검증하기 위해 사용되며, 스텁은 테스트하려는 코드에 필요한 간접 입력을 제공하는 데 초점을 맞춥니다.

이런 차이점을 이해하는 것이 중요하며, 따라서 둘 사이에 명확한 경계가 있을 수 있음을 알아두시는 것이 좋습니다.