Skip to content

Latest commit

 

History

History
35 lines (23 loc) · 1.6 KB

test-double.md

File metadata and controls

35 lines (23 loc) · 1.6 KB

테스트 대역이란?

Mock (mock,Spy)

  • 외부로 나가는 상호작용을 모방한다.
  • 상태를 변경하기 위한 의존성을 호출하는 것
  • ex) 이메일 발송

Stub (stub, dummy, fake)

  • 내부로 들어오는 상호작용을 모방
  • 입력 데이터를 얻기 위한 의존성을 호출하는 것
  • Stub은 테스트 중 호출된 경우에 대해 미리 만들어진 결과물을 응답한다.
  • ex) 데이터베이스로부터 데이터 검색

Stub은 상태 검증 (최종 결과)
Mock은 행동 검증 (올바른 호출)

Mock 과 Stub 의 차이는

  • Stub을 포함한 다른 테스트 대역들은 상태 검증을 위해 사용되고, Mock 은 행위 검증을 위해 사용된다.

    • 상태 검증은? 메소드가 수행 된 후, 객체의 상태를 확인하여 올바르게 동작했는지 검증하는 것
    • 행위 검증은? 메소드의 리턴값으로 판단할 수 없는 경우, 특정 동작을 수행하는지 확인하는 검증법
  • 명령(Command)을 대체하는 테스트 대역은 Mock이고,. 조회(Query)를 대체하는 테스트 대역은 Stub이다

    • 명령(Command): 부작용을 일으키고 어떤 값도 반환하지 않는 메서드 (return void)- setter
    • 조회(Query): 부작용이 없고 값을 반환하는 것 - getter