더북(TheBook)

이전 장에서는 제스트를 사용하여 첫 번째 단위 테스트를 작성했으며, 테스트 자체의 유지 보수성을 살펴보았다. 테스트 시나리오는 매우 단순했고, 무엇보다도 외부 요소에 의존하지 않는 독립적인 구조였다. 비밀번호 검증 프로젝트는 외부 모듈에 의존하지 않아서 외부 간섭 없이 자체 기능 개발에만 집중할 수 있었다.

이 장에서는 반환 값을 가진 종료점과 상태 값을 변경하는 종료점을 사용하여 예제를 만든다. 또 종료점의 마지막 유형인 서드 파티 호출을 다룰 예정이며, 새로운 요구 사항인 시간 값에 의존하는 코드도 살펴볼 예정이다. 이를 처리하는 두 가지 접근 방식을 살펴볼 텐데, 하나는 코드를 리팩터링하는 것이고 다른 하나는 리팩터링 없이 몽키 패칭(monkey-patching)1을 적용하는 것이다.

테스트를 작성할 때 외부 모듈이나 특정 함수에 의존하면 테스트를 만들기 어렵다. 이는 테스트를 작성할 때뿐만 아니라 반복적으로 테스트를 수행하는 과정에서도 문제가 되며, 테스트를 불안정하게 만들 수 있는 요소다.

우리가 코드에서 의존하는 외부 요소를 의존성(dependency)이라고 한다. 이 장에서 의존성을 더 자세히 설명할 예정이다. 이러한 의존성에는 시간, 비동기 실행, 파일 시스템, 네트워크 등이 포함될 수 있으며, 때로는 설정하기가 매우 복잡하거나 실행하는 데 시간이 많이 소요되는 요소까지 포함하기도 한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.