용어를 외운 사람과 _어떤 더블을 언제 쓰는지_ 기준을 가진 사람을 가르는 질문이다. 종류 나열로 끝내면 후속에서 상태 검증과 행위 검증의 차이로 곧장 들어간다.
테스트 더블은 실제 의존성 대신 사용하는 대체 객체를 통틀어 부르는 말이다. Meszaros 분류로 더미·스텁·페이크·스파이·목 다섯 종류가 있는데, 단순히 자리만 채우는지(더미), 정해진 값을 돌려주는지(스텁), 동작하는 가짜 구현인지(페이크), 호출을 기록만 하는지(스파이), 호출 자체를 검증 대상으로 두는지(목)로 갈린다. 핵심은 _상태를 검증_할지 _상호작용을 검증_할지에 따라 더블 종류가 정해진다는 점이다.
목을 남용해서 리팩토링할 때마다 테스트가 깨졌던 경험이 있다면 행위 검증의 비용 이야기로 이어갈 수 있다
외부 API 의존 테스트가 느려서 더블로 갈아 끼웠던 경험을 결정적 테스트 만들기 사례로 풀 수 있다
팀 안에서 스텁과 목 선택 기준을 정리해본 적이 있다면 의도 기반 테스트 설계로 연결할 수 있다
아직 공개된 답변이 없어요. 첫 공개 답변을 남겨보세요.