목차:

image.png

5.1 격리 프레임워크 정의

테스트를 위해 **목(Mock)**이나 스텁(Stub) 객체를 수동으로 만드는 것은 번거롭고 오류 발생 가능성이 높다.

테스트하려는 대상의 의존성이 복잡해질수록, 가짜 객체를 만들기 위한 상속, 인터페이스 구현 등 반복적인 코드가 늘어나고 테스트 코드 자체가 복잡해지는 문제가 발생한다.

이를 해결하기 위해 등장한 것이 격리 프레임워크(Isolation Framework), 자바에서는 **모의 프레임워크(Mocking Framework)**라고 불리는 라이브러리들이다.

5.1.1 선택하기: 느슨한 타입 대 정적 타입

자바의 대표적인 모의 프레임워크로는 Mockito, EasyMock, PowerMock 등이 있다.

이러한 프레임워크의 핵심 가치는 특정 프레임워크 자체에 있는 것이 아니라, 이를 사용함으로써 얻게 되는 테스트의 가독성, 유지보수성, 지속 가능성에 있다.

잘 활용하면 프로덕션 코드 변경에 따른 테스트 코드 수정 작업을 최소화할 수 있지만, 잘못 사용하면 오히려 테스트를 읽기 어렵고 신뢰할 수 없게 만들 수도 있다.