Test Double
Test Double
이란, 테스트를 위해 대역을 하는 스턴트맨 정도로 생각하면 된다.- 대충 5가지의
Test Double
이 존재한다.
Dummy Objects
- 테스트를 위해 파라미터로 넘겨지지만, 절대 사용되지는 않는 오브젝트를 말한다.
Fake Objects
- 실제 구현도 존재하지만, 프로덕션에서 사용되지는 않는다.
- 인 메모리 데이터베이스가 좋은 예가 된다.
Stubs
- (쓰다 남은 물건의) 토막, 꽁초, 몽당연필을 뜻한다.
- 진행중인 테스트가 의존하는 소프트웨어 컴포넌트의 동작을 흉내내는 프로그램이다.
- 정해진 답(canned answers) 을 반환한다.
- top-down approach 에서 사용된다.
Spies
- 어떻게 호출되었는지를 기반으로 정보를 기록하는
Stubs
이다. - 이메일이 몇 번 전송되었는지 기록하는 이메일 서비스가 하나의 예이다.
- 프록시를 이용해 구현 가능하다.
Mocks
- 기대하는 동작이 미리 프로그램으로 입력된 오브젝트이다.\
Test Double 을 사용하는 이유
- 테스트 대상 코드를 격리한다.
- 각 레이어에 집중해서 테스트를 작성할 수 있다.
- 테스트 속도를 개선한다.
- 원본 객체를 사용하는 것보다 빠르다.
- 예측 불가능한 실행 요소를 제거한다.
- 이를테면 랜덤 값(주사위)과 같은 경우를 테스트 해볼 수 있다.
- 특수한 상황을 시뮬레이션 가능하다.
- 컴퓨터의 네트웍이 갑자기 끊기는 등의 테스트를 해볼 수 있다.
레퍼런스
반응형
'Java > 자바 잡지식' 카테고리의 다른 글
자바 EE 란? (0) | 2022.04.20 |
---|---|
클린 아키텍처 (by Robert C. Martin) 번역 (0) | 2022.04.14 |
Gradle 에서 Plugins 의 역할은 무엇일까? (0) | 2022.04.03 |
자바의 synchronized 키워드 정복하기 (0) | 2022.04.03 |
자바에서 주석 다는 방법: Javadoc 이란 무엇일까? (Feat. 위키피디아) (0) | 2022.03.30 |