시스템에 들어가는 모든 소프트웨어를 직접 개발하는 경우는 드물다
외부 코드를 우리 코드에 깔끔하게 통합해야 한다.
외부 코드 사용하기
- Map(혹은 유사한 경계 인터페이스를)을 이용하는 클래스나 클래스 계열 밖으로 노출하지 않도록 주의
경계 살피고 익히기
- 외부 패키지 테스트가 우리 책임은 아니지만 우리가 사용할 코드를 테스트하는 편이 바람직하다.
- 학습 테스트 : 우리쪽 코드를 작성해 외부 코드를 호출하는 대신 먼저 간단한 테스트 케이스를 작성해 외부 코드를 익히는 것
(프로그램에서 사용하려는 방식대로 외부 API를 호출)
학습 테스트는 공짜 이상이다
- 학습 테스트는 이해도를 높여주는 정확한 실험이다.
- 투자하는 노력보다 얻는 성과가 더 크다.
- 패키지가 예상대로 도는지 검증한다.
- 패키지의 새 버전이 우리 코드와 호환되지 않으면 학습 테스트가 이 사실을 곧바로 밝혀낸다.
깨끗한 경계
- 경계에 위치하는 코드는 깔끔히 분리한다.
- 기대치를 정의하는 테스트 케이스도 작성한다.
- 외부 패키지를 호출하는 코드를 가능한 줄여 경계를 관리하자.
- 새로운 클래스로 경계를 감싸거나, Adapter 패턴을 사용해 우리가 원하는 인터페이스를 패키지가 제공하는 인터페이스로 변환하자.