[파이썬] 테스트 더블(Test Double)의 종류
  1. 더미(Dummy): 더미 객체는 실제 구현이 없는 간단한 객체로, 특정 메소드 호출만을 다룹니다. 주로 메소드의 파라미터로 전달되는 객체를 대체하는데 사용됩니다. 예를 들어, 특정 메소드가 리스트를 받는 경우 더미 객체를 사용해 빈 리스트를 전달할 수 있습니다.

  2. 페이크(Fake): 페이크 객체는 실제 동작하는 객체지만, 단순한 형태로 구현됩니다. 실제 구현보다는 단순한 버전으로 동작하는데, 예를 들면 간단한 데이터베이스 메모리 저장소가 될 수 있습니다.

  3. 스텁(Stub): 스텁 객체는 미리 정의된 응답을 반환하는 메소드를 제공합니다. 이는 특정 메소드가 특정한 값이나 예외를 반환하도록 설정할 수 있습니다. 예를 들어, 특정 메소드가 항상 1을 반환하도록 스텁 객체를 구현할 수 있습니다.

  4. 스파이(Spy): 스파이 객체는 메소드 호출에 대한 정보를 기록하고, 원래의 구현을 호출합니다. 이는 메소드 호출이 발생하는 횟수, 전달된 인자, 반환된 값 등을 확인할 수 있습니다. 스파이는 테스트 중에 발생하는 객체의 상태 변화를 추적하고, 그 정보를 테스트에서 활용할 수 있습니다.

  5. 모의 객체(Mock): 모의 객체는 미리 정의된 행동을 기대하고, 호출된 메소드에 대한 검증을 수행합니다. 모의 객체는 예상되는 특정 메소드 호출이 발생했는지, 특정 메소드 호출의 매개 변수가 기대한 값과 일치하는지 등을 확인할 수 있습니다.

테스트 더블을 사용하면 테스트를 더 쉽게 작성하고 유지할 수 있습니다. 이러한 도구들은 테스트를 더 견고하게 만들며, 코드의 결합도를 낮추고 유지보수성을 향상시킵니다. Python에서도 다양한 테스트 더블 라이브러리를 사용할 수 있으며, 이를 활용하여 테스트를 보다 쉽게 작성할 수 있습니다.