테스트 피라미드에 따르면 비용이 많이 드는 테스트는 지양하고, 비용이 적은 테스트를 많이 만들어야 한다.
맥락에 따라 테스트 피라미드에 포함되는 계층은 달라질 수 있다.
헥사고날 아키텍처를 테스트하기 위해 내가 선택한 계층들을 한번 살펴보자.
단위 테스트
, 통합 테스트
, 시스템 테스트
의 정의는 맥락에 따라 다르다는 것을 알아두자.
단위 테스트는 피라미드의 토대에 해당한다.
일반적으로 하나의 클래스를 인스턴스화하고 해당 클래스의 인터페이스를 통해 기능들을 테스트한다.
만약 테스트 중인 클래스가 다른 클래스에 의존한다면?
→ 의존되는 클래스들은 인스턴스화하지 않고 필요한 작업들을 흉내내는 목(Mock
)으로 대체한다.