
358
자바에서 코틀린으로
givenADistanceBetween
같은 메서드를 정의할 수 있으면 목의 예상과 테스트 사이의 관계를
표현할 수 있다. 이런 메서드는 왜 노출시키고 어떻게를 감출까. 하지만 실제로는 이런 단계를
밟는 개발자는 극히 드믈며, 그로 인해 모킹 사용을 비난하게 만드는 암호처럼 느껴지는 테스트
가 생겨나게 된다.
냇은 자신과 스티브 프리먼이 ‘테스트 주도 개발로 배우는 객체 지향 설계와 실천’에서 쓴 목이
결코
findCloseTo
나
distanceInMetersBetween
같은 질의 기능을 구현하는 데 쓰이려는
목적이 아니라고 하면서, 상태를 변경하는 메서드를 대신하기 위한 목적이라는 점을 지적했다.
덩컨은 이런 문제점을 느낀 기억이 없으며, 개인적으로는 목을 이런 방식 (질의 기능 구현 )으
로 사용하는 데 반대하지 않는다. 왜냐하면 이 방법은 아웃사이드인
outside
-
in
1
테스트 주도 개발
test
-
driven
development
(
TDD
)을 진행할 때 협력자들에게 바라는 내용을 지정하는 좋은 방법이기
때문이다. 결국 경험에서 볼 때, 대부분 자바 코드 기반에는 이런 식으로 사용되는 목이 있고,
대부분 코틀린 코드 기반에서는 목이 없는 경우가 더 낫기 때문에, 아마도 이는 별로 문제가 되
지 않을지 모른다.
하지만 아직은