테스트 더블(Test Double)은 소프트웨어 테스트에서 실제 객체나 컴포넌트를 대신하는 가짜 객체를 말합니다. 영화에서 위험한 장면을 대신 연기하는 스턴트 더블에서 이름을 따온 용어입니다.

테스트 더블의 주요 종류는 다음과 같습니다:

더미(Dummy): 단순히 파라미터를 채우기 위해 사용되는 객체로, 실제로는 사용되지 않습니다.

스텁(Stub): 미리 정의된 답변을 반환하는 객체입니다. 테스트에서 특정 메서드가 호출되면 정해진 값을 돌려줍니다.

스파이(Spy): 실제 객체의 일부 기능을 유지하면서 호출 정보를 기록하는 객체입니다. 메서드가 몇 번 호출되었는지, 어떤 파라미터로 호출되었는지 확인할 수 있습니다.

모킹(Mock): 예상되는 호출과 반환값을 미리 설정하고, 실제로 그대로 호출되었는지 검증하는 객체입니다.

가짜 객체(Fake): 실제 구현을 간단하게 만든 버전으로, 테스트 환경에서만 사용됩니다. 예를 들어 인메모리 데이터베이스 같은 것입니다.

테스트 더블을 사용하는 이유는 외부 의존성을 제거하여 테스트를 빠르고 안정적으로 만들고, 특정 상황을 쉽게 시뮬레이션할 수 있기 때문입니다.


  • 백엔드와 독립된 프론트엔드 자체 테스트 파이프라인 구축을 통한 어플리케이션 안정성 강화 및 고도화
  • Nextjs 페이지 모듈화를 통한 응집도 향상
  • 레이어 아키텍쳐 패턴 적용을 통한 프로젝트 복잡도 감소