세상을 바꾸는 개발자

[이펙티브 코틀린] 단위 테스트를 만들어라 본문

안드로이드/Kotlin

[이펙티브 코틀린] 단위 테스트를 만들어라

헬창코딩 2023. 7. 20. 00:22

안드로이드는 자바와 코틀린 2가지 언어로 개발을 할 수 있지만 요즘 자바를 사용해서 개발하는 경우는 찾아보기 힘듬니다

저또한 코틀린을 사용합니다 하지만 사용하면서 잘 몰랐던 부분도 있고 한번도 써보지않는 편리고 좋은 기능들이 많이 존재합니다 그래서 이번에 복습할겸 이펙티브 코틀린의 내용으로 정리를 하려고 합니다.

 

안정성 - 단위테스트를 만들어라 

코드를 안전하게 만드는 다양한 방법이 있지만 가장 궁극적인 방법은 다양한 종류를 테스트 하는 것이다

 

하지만 비즈니스적인 관점의 테스트는 개발자 관점에서 애플리케이션 내부적으로 올바르게 작동하는지 확인하는 것이 아니라, 사용자의 관점에서 애플리케이션 외부적으로 제대로 동작하는지 확인하는 것이 목표이다

그렇기 때문에 개발자에게 유용하지만 충분하지는 않다. 이러한 문제를 해결하려면 단위 테스트(Unit test) 가 필요하다

 

단위테스트로 확인하는 것

  • 일반적인 유스케이스 : 요소가 사용될 것이라고 예상되는 일반적인 방법
  • 일반적인 오류 케이스와 잠재적인 문제 : 제대로 동작하지 않을 거라고 예상되는 일반적인 부분, 과거에 발생했던 부분
  • 에지케이스와 잘못된 아규먼트 

단위테스트의 장점

  • 테스트가 잘된 요소는 신뢰할 수 있다 그렇기에 해당 요소를 활용한 작업에 자신감이 생긴다
  • 테스트가 잘 만들어져 있다면 리펙터링하는 것이 두렵지 않음
  • 수동으로 테스트하는 것 보다 단위테스트로 하는 것이 훨씬 빠르다

단위테스트의 단점 

  • 단위테스트를 작성하는 데 시간이 많이 걸린다(장기적으로 봤을때는 시간을 줄여줌)
  • 테스트를 활용할 수 있게 코드를 조정해야한다(이러한 변경이 어렵지만 변경을 통한 훌륭한 아키텍처 정립가능)
  • 좋은 단위테스트를 만드는 것은 다양한 경험이 필요하고 어렵다 잘못만들어진 테스트는 득보다 실이 크다

개발자로써 단위테스트를 할 줄 알아야 하는 부분

  • 복잡한 부분
  • 계속해서 수정이 일어나고 리펙터링이 일어날 수 있는 부분 
  • 비즈니스 로직 부분
  • 공용 API 부분
  • 문제가 자주 발생하는 부분
  • 수정해야 하는 프로덕션 버그

 

 

 

 

 

 

 

 

 

 

참고 : 이펙티브 코틀린

https://www.yes24.com/Product/Goods/106225986?pid=123487&cosemkid=go16425707805513414&gclid=Cj0KCQjwkqSlBhDaARIsAFJANkhCQTUD9TDNQIc0Vtl8O9OL8NFCy7dvHa-SLpewyWlUTlfoadfvjD0aAirIEALw_wcB

Comments