-
테스트 대역이란 테스트 하려는 객체와 다른 객체들이 엮여있어 사용하기 힘들 때 대체할 수 있는 객체를 의미
-
테스트 대역은 크게 �Mock과 Stub으로 나누어진다.
- 외부로 나가는 상호작용을 모방한다.
- 상태를 변경하기 위한 의존성을 호출하는 것
- ex) 이메일 발송
- 내부로 들어오는 상호작용을 모방
- 입력 데이터를 얻기 위한 의존성을 호출하는 것
- Stub은 테스트 중 호출된 경우에 대해 미리 만들어진 결과물을 응답한다.
- ex) 데이터베이스로부터 데이터 검색
Stub은 상태 검증 (최종 결과)
Mock은 행동 검증 (올바른 호출)
-
Stub을 포함한 다른 테스트 대역들은 상태 검증을 위해 사용되고, Mock 은 행위 검증을 위해 사용된다.
- 상태 검증은? 메소드가 수행 된 후, 객체의 상태를 확인하여 올바르게 동작했는지 검증하는 것
- 행위 검증은? 메소드의 리턴값으로 판단할 수 없는 경우, 특정 동작을 수행하는지 확인하는 검증법
-
명령(Command)을 대체하는 테스트 대역은 Mock이고,. 조회(Query)를 대체하는 테스트 대역은 Stub이다
- 명령(Command): 부작용을 일으키고 어떤 값도 반환하지 않는 메서드 (return void)- setter
- 조회(Query): 부작용이 없고 값을 반환하는 것 - getter