아이템 10 - 단위 테스트를 만들어라

ds_chanin

·

2022. 3. 7. 12:27


코드를 안전하게 만드는 방법은 다양한 종류의 테스트를 하는 것이다. 대부분의 관리자에게 테스트는 사용자 관점에서 애플리케이션 외부적으로 제대로 작동하는지 확인하는 것이 목표이다. 물론 개발자에게도 유용하지만 충분하지 않다. 개발자는 각 요소가 올바르게 작동한다는 것을 보증하고 빠른 피드백을 받으며 개발하기 위해 단위 테스트가 필요하다.

테스트 내용

단위 테스트는 일반적으로 아래 내용을 확인함으로써 개발자가 만들고 있는 요소가 제대로 동작하는지를 빠르게 피드백해줄 수 있어 도움이 된다.

  • 일반적인 유스 케이스: 예상되는 일반적인 방법
  • 일반적인 오류 케이스, 잠재적인 문제: 동작하지 않을 거라고 예상되는 일반적인 부분, 과거에 문제가 발생한 부분
  • Edge 케이스, 잘못된 매개변수의 입력

테스트 장점

  • 테스트로 인해 신뢰할 수 있다.
  • 리팩토링이 두렵지 않다.
  • 수동 테스트보다 훨씬 빠르다

단점같은 장점

  • 테스트를 작성하는데 시간이 걸린다. 하지만! 장기적으로 좋은 단위 테스트는 디버깅 시간과 버그를 찾는 데 소모되는 시간을 줄여준다.
  • 테스트를 활용할 수 있게 코드를 조정해야한다. 이 과정에서 좋은 아키텍쳐가 탄생하도록 강제된다.
  • 좋든 단위 테스트를 만들기 어렵다. 잘못 만들어진 단위 테스트는 득보다 실이 크다.

다음과 같은 부분에 대해 단위 테스트하는 방법을 알고 있어야 한다.

  • 복잡한 부분
  • 계속해서 수정이 발생하고 리팩토링 해야하는 부분
  • 비즈니스 로직
  • 공용 API 사용 부분
  • 문제가 자주 발생하는 부분
  • 버그