Test

Test Double

긍.응.성 2022. 7. 10. 20:19
반응형

테스트 더블은 영화 촬영 시 위험한 역할을 대신하는 스턴드 더블이라는 단어에서 비롯되었다. 테스트하려는 객체와 연관된 객체를 사용하기가 어렵고 모호할 때 대신해 줄 수 있는 객체를 의미한다.

Dummy

  • 인스턴스화 된 객체가 필요하지만 기능이 필요하지 않은 경우
  • 빈 implementation을 가진 Wrapper 클래스로 이해하면 된다.

Fake

  • 복잡한 로직이나 객체 내부에서 필요로 하는 다른 외부 객체들의 동작을 단순화하여 구체화한 객체
  • 실제 클래스에 비해 간단하게만 동작하게 implements 된 객체라고 이해하면 됨.

Stub

  • Dummy 객체가 실제로 동작하는 것처럼 보이게 만들어 놓은 객체
  • 테스트에서 호출된 요청에 대해 미리 준비된 결과를 제공한다.

Spy

  • 실제 객체처럼 동작시킬 수 있고, 필요한 부분에 대해서는 Stub으로 만들어 동작을 지정할 수 있다.
  • Stub의 특성을 가지고 있기 때문에 호출된 내용(인자) 등에 대하여 정보를 가질 수 있다.

Mock

  • 호출에 대한 기대를 명세하고 내용에 따라 동작하도록 프로그래밍된 객체
  • 테스트 작성을 위한 환경 구축이 어려울 때 사용
  • 행위 기반 테스트가 가능하다
반응형