
34
자바에서 코틀린으로
1.3.2
테스트 커버리지가 좋다고 가정한다
마틴 파울러는 이렇게 말했다. “리팩터링을 하고 싶다면, 필수 전제조건은 탄탄한 테스트가 있
어야 한다.” 좋은 테스트 커버리지는 우리가 설계 개선을 위해 수행하는 리팩터링이 시스템의
동작을 우연히 변경하는 일이 없음을 보장해 준다. 코드의 테스트 커버리지가 좋다고 가정해
보자. 이 책에서는 자동화된 테스트를 작성하는 방법을 다루지 않는다. 이미 테스트에 대해 자
세하게 잘 다룬 책은 많이 있다. 예를 들어, 켄트 벡의 ‘테스트 주도 개발
3
’이나 스티브 프리먼
Steve
Freeman
과 냇 프라이스의 ‘테스트 주도 개발로 배우는 객체 지향 설계와 실천
4
’ 등이 있다. 하
지만 이 책은 테스트를 개선하기 위해 코틀린의 기능을 적용하는 방법을 보여 준다.
여러 단계에 걸쳐 코드를 변환하는 과정을 보여 주면서 테스트를 실행한다고 매번 이야기하지
는 않을 것이다. 하지만 변경된 부분의 크기와 관계없이 코드를 변경하고 컴파일이 잘 된다고
할 때마다 테스트를 실행한다고 생각하라.
시스템에 아직 좋은 테스트가 없다면, 코드에 대한 회고 테스트를 수행하는 게 어려울 수(그리
고 비용이 많이 들 수 ) 있다. 테스트하려는 로직이 시스템의 다른 여러 요소와 서로 얽혀있기
때문이다. 이러면 닭이 먼저냐 달걀이 먼져냐 ...