이 글은 Effective Java 를 완독하고, Kotlin 을 상용으로 사용하는 개발자 입장에서
Effective Kotlin 글 중 새로운 내용, remind 할 필요 있는 부분, 핵심 내용 등만 추려 정리한 내용입니다.
#
unit test 로는 보통 아래의 것들을 체크한다.
일반적인 use case (happy path)
Common error case, 잠재적 문제 - 문제가 발생할 수 있는 경우나, 과거에 생겼던 문제
Edge-case and illegal arguments - Int.MAX_VALUE, null 등의 케이스
#
unit test 가 있으면 아래의 장점이 있다.
코드에 대한 신뢰도가 더 생긴다.
refactor 를 하는데 자신감이 생긴다.
특정 상황들에서는 수동으로 체크하는 것보다 더 빠르게 체크할 수 있다.
#
unit test 의 단점은 아래와 같다.
test 코드를 작성하는데 시간이 걸린다. 하지만 디버깅과 버그를 찾아 해메는 시간을 절약해준다는 측면에서 장기적 관점에서는 시간이 더 절약된다고 볼 수 있다. 수동 테스트보다 unit test 가 훨씬 시간도 적게 걸린다. test 코드를 작성하다 보면 더 좋은 아키텍쳐로 진화하곤 한다.
좋은 test 코드를 작성하는 것은 어렵고, 다른 개발자들에게 이해해야 하는 공수도 발생한다. 잘못 작성된 test 코드는 장점보다 단점이 더 크게 부각된다. 그래서 모두가 unit test 에 대해 합의된 생각을 가져야 하고, 잘 작성해야 한다.
#
숙련된 kotlin 개발자는 최소한 코드의 중요 파트만이라도 테스트를 작성해야 한다.
중요 파트들이란..
복잡한 기능을 가진 것
자주 변경되는 부분이나, 추후에 리펙토링 소지가 높은 곳
비지니스 로직
public API
깨지기 쉬운 부분
버그가 발생했을 때 고치는 부분
#
테스트는 장기적 관점에서 유지보수 측면에서 좋고, 신뢰도를 높여주기 때문에 "투자" 라고 생각하고 진행해야 한다.
Summary
끝
댓글