개발자의 오르막
테스트 대역 본문
# 토비의 스프링 5장 (서비스 추상화)
# 테스트 대역의 종류와 특징
테스트 환경을 만들어주기 위해, 테스트 대상이 되는 오브젝트의 기능에만 충실하게 수행하면서 빠르게, 자주 테스트를 실행할 수 있도록 사용하는 이런 오브젝트를 통틀어서 테스트 대역(test double)이라고 부른다.
대표적인 테스트 대역은 테스트 스텁(test stub)이다. 테스트 스텁은 테스트 대상 오브젝트의 의존객체로서 존재하면서 테스트 동안에 코드가 정상적으로 수행할 수 있도록 돕는 것을 말한다.
테스트는 보통 어떤 시스템에 입력을 주었을 때 기대하는 출력이 나오는지를 검증한다.
목 오브젝트(mock object)는 스텁처럼 테스트 오브젝트가 정상적으로 실행되도록 도와주면서, 테스트 오브젝트와 자신의 사이에서 일어나는 커뮤니케이션 내용을 저장해뒀다가 테스트 결과를 검증하는 데 활용할 수 있게 해준다.
예를 들어 테스트를 실행할 때, 테스트의 대상이 되는 오브젝트에 직접 입력 값을 제공하고, 테스트 오브젝트가 돌려주는 출력 값, 즉 리턴 값을 가지고 결과를 확인한다. 테스트 대상이 받게 될 입력 값을 제어하면서 그 결과가 어떻게 달라지는지 확인하기도 한다. 문제는 테스트 대상 오브젝트는 테스트로부터만 입력을 받는 것이 아니라는 점이다. 테스트가 수행되는 동안 실행되는 코드는 테스트 대상이 의존하고 있는 다른 의존 오브젝트와도 커뮤니케이션하기도 한다.
따라서 목 오브젝트란, 안전한 테스트 환경을 위해 실제 사용 DB나 메일 서버를 거치지 않고, 테스트 오브젝트의 리턴값이 다른 의존 오브젝트의 영향을 받지 않고 기대값으로 잘 나왔는지 검증할 수 있도록 설계된 것을 말한다.
'SpringFrameWork > Spring' 카테고리의 다른 글
Spring framework - Maven (0) | 2019.08.27 |
---|---|
Spring Frame Work 개발환경 구축 (0) | 2019.08.14 |
가짜객체 (0) | 2019.07.17 |
의존성 주입 (0) | 2019.07.12 |
트랜잭션 서비스 추상화 (0) | 2019.07.08 |