본문 바로가기
프로그래밍 놀이터/Kotlin, Coroutine

[Effective Kotlin] Item 10 : Write unit tests

by 돼지왕 왕돼지 2022. 3. 7.
반응형

이 글은 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

 

 

 

반응형

댓글