본문 바로가기
SpringBoot/생각공유폴더

[TDD] Test Doubles의 다섯 가지 요소

by 띵앤띵 2024. 5. 3.
728x90
반응형

최근에 소프트웨어 개발 방법론 중 하나인 테스트 주도 개발(TDD)에 대한 흥미가 생겨, 이를 실제 프로젝트에 도입해보려고 학습 중입니다. 그 중에서도 테스트 더블(Test Doubles)에 대해 깊게 이해하고자 합니다. 테스트 더블은 TDD에서 핵심적인 역할을 수행하며, 이를 통해 단위 테스트와 통합 테스트를 보다 효과적으로 수행할 수 있습니다. 이번 글에서는 테스트 더블의 다섯 가지 요소에 대해 알아보겠습니다.

 

 

Stub

  • Stub은 테스트 중에 호출되면 미리 정해진 답을 반환하는 형태를 말합니다.
  • Stub은 상태를 검증하지 않고, 입력에 대한 출력이 발생하는지를 검증합니다.

Mock

  • Mock은 실제 객체의 동작을 모방하는 객체입니다. 메서드의 호출에 대한 기대를 명세하고, 미리 정의된 내용에 따라 동작했는지를 검증합니다.

Spy

  • Spy는 테스트 중에 호출되면 호출된 내용을 기록하는 형태를 말합니다.

Dummy

  • Dummy는 특정 테스트에서 사용되지 않는 객체를 의미합니다. 보통은 객체의 필요한 형식만 제공하고, 실제 동작은 수행하지 않습니다.

Fake

  • Fake는 실제로 동작하는 구현을 가지고 있지만, 실제 사용되는 것보다 더 단순한 형태로 동작하는 객체입니다. 대표적으로 메모리에 데이터를 저장하는 간단한 데이터베이스가 될 수 있습니다.

 

 

테스트 더블은 소프트웨어 개발에서 테스트의 품질과 효율성을 높이는 중요한 역할을 합니다. Stub, Mock, Spy, Dummy, Fake 같은 다양한 테스트 더블을 적재적소에 활용하면서, 테스트 주도 개발의 원칙을 보다 엄격하게 준수하고 실용적으로 적용할 있습니다. 앞으로도 테스트 더블에 대한 학습과 실험을 통해 소프트웨어 품질 향상에 기여하고자 합니다.

반응형

댓글