단위 테스트(Unit test)는 하나의 기능(단위)만을 검증하기 위한 테스트를 뜻한다. 하나의 기능(단위)는 정하기 나름이지만 작으면 작을 수록 좋다.
하지만 실제로 코드를 짜다보면 하나의 기능에 여러 의존관계를 가지고 있어 테스트 하기 쉽지 않을 때가 많다. 단위를 의존 관계로 부터 고립시켜서 테스트 하고 싶을 때 사용 하는 것이 테스트 대역(데트스 더블)
이다.
테스트 대역은 테스트할 코드가 의존하고 있는 객체를 대신해서 사용하는 객체를 말한다. 테스트 대역은 실제 의존 객체와 같은 기능을 가지고 있지만 최소한의 구현만 해놓는다.
테스트 대역으로 테스트 스텁과 목 오브젝트가 많이 비교 된다.
테스트 스텁(Test Stub)
목 오브젝트(Mock Object)
차이점
통합 테스트(Integration test)는 의존하고 있는 객체들이나 DB, 파일 같은 외부 서비스들을 같이 테스트 하는 것을 말한다. 적어도 두 개 이상의 단위를 결합한 테스트가 되야한다.
위 경우에 사용되며, 토비의 스프링에서는 단위 테스트를 먼저 고려하고 통합 테스트를 고려하는 방식으로 테스트를 작성하는걸 권장한다.
한 줄평 : 테스트를 경험해보지 않은 입장에서는 단위 테스트를 고립시키는 것 부터 숨이 턱턱 막힌다...