Mock

  • 가짜 객체를 만들어서 사용하는 기술
  • 실제 객체를 만들기에는 비용, 시간이 많이 들고 의존성이 많이 걸쳐져 있는 테스트일때

 

  • 테스트 더블
    • 테스트를 진행할 수 있도록 만들어주는 객체
    • Mock 객체와 유사하나 상위 의미로 사용
  • 더미 객체
    • 인스턴스화 될 수 있는 수준으로만 객체 구현
    • 객체가 필요할 뿐 기능까지는 필요하지 않을 때 사용
  • 테스트 스텁(Test Stub)
    • 더미객체가 실제로 동작하는것 처럼 보이게 만들어 놓은 객체
    • 객체의 특정상태를 가정해 특정값을 리턴 및 메시지 출력
    • 로직에 따른 값의 변경은 테스트 할수 없음
    • 어떤 행위가 호출됐을 때 특정 값으로 리턴시켜주는 형태가 Stub
  • 페이크 객체(Fake Object)
    • 실제 로직이 구현된 것처럼 보이게 한다.
  • 테스트 스파이(Test Spy)
    • 테스트시 객체, 메소드의 사용여부 및 정상 호출 여부를 기록 요청시 알려줌
    • 행위 기반 테스트가 필요한 경우 사용
  • Mock 객체(Mock Object)
    • 테스트 더블 하위 객체로써의 좁은 의미
    • 테스트 더블을 포함한 넓은 의미
    • 상태 기반 테스트가 가능하다면 만들지 않

Mock Stub 차이

비슷한 개념이지만 위의 내용을 보고 구별할 줄 알아야 한다.

 

Mock

  • 행위 검증에 사용
  • 예) 스마트폰 전시된 장식 폰

Stub

  • 일부 기능(테스트 하고자 하는 기능)에 집중하여 임의로 구현한다.
  • 상태 검증에 사용

+ Recent posts