Test Double
Test Double
이란, 테스트를 위해 대역을 하는 스턴트맨 정도로 생각하면 된다.
- 대충 5가지의
Test Double
이 존재한다.
Dummy Objects
- 테스트를 위해 파라미터로 넘겨지지만, 절대 사용되지는 않는 오브젝트를 말한다.
Fake Objects
- 실제 구현도 존재하지만, 프로덕션에서 사용되지는 않는다.
- 인 메모리 데이터베이스가 좋은 예가 된다.
Stubs
Spies
- 어떻게 호출되었는지를 기반으로 정보를 기록하는
Stubs
이다.
- 이메일이 몇 번 전송되었는지 기록하는 이메일 서비스가 하나의 예이다.
- 프록시를 이용해 구현 가능하다.
Mocks
- 기대하는 동작이 미리 프로그램으로 입력된 오브젝트이다.\
Test Double 을 사용하는 이유
- 테스트 대상 코드를 격리한다.
- 각 레이어에 집중해서 테스트를 작성할 수 있다.
- 테스트 속도를 개선한다.
- 예측 불가능한 실행 요소를 제거한다.
- 이를테면 랜덤 값(주사위)과 같은 경우를 테스트 해볼 수 있다.
- 특수한 상황을 시뮬레이션 가능하다.
- 컴퓨터의 네트웍이 갑자기 끊기는 등의 테스트를 해볼 수 있다.
레퍼런스
위키피디아 Test stub
Effective Unit Testing Chapter 3. 테스트 더블