테스트 더블 : 더미, 스텁, 페이크, 스파이, 목

테스트 더블은 수행하는 역할에 따라서 더미, 스텁, 페이크, 스파이, 목으로 분류할 수 있습니다.

  • 더미(Dummy) 는 아무런 동작도 하지 않으며, 인스턴스화된 객체만 필요한 경우에 사용됩니다.
  • 스텁(Stub) 은 구현을 단순한 것으로 대체합니다. 테스트에 맞게 단순히 원하는 동작을 수행합니다.
  • 페이크(Fake) 는 제품에는 적합하지 않지만, 실제 동작하는 구현을 제공합니다.
  • 스파이(Spy) 는 호출된 내역을 기록합니다. 기록한 내용은 테스트 결과를 검증할 때 주로 사용되며, 스텁의 일종이기도 합니다.
  • 목(Mock) 은 기대한 대로 상호작용하는지 행위를 검증합니다. 기대한 것처럼 동작하지 않는다면, 예외를 발생할 수 있습니다. 목 객체는 스텁이자 스파이기도 합니다.