[ Unit Test ]

Teasan·2020년 11월 15일
0
post-thumbnail

Unit Test의 장점

  • 유닛 테스트는 다른 Test 보다 테스트 비용이 싸다. 다른 테스트는 서버와 프론트를 연동하여 사람이 직접 테스트하지만, 유닛은 한 사람이 스크립트로 한꺼번에 자동으로 실행하기 때문.
  • 실행 속도가 빠르다. 하루에도 배포를 여러번 할 수 있어서 개발 및 배포 속도에 중요한 영향을 주기 때문에 개발할 때 최대한 활용하면 좋다.
  • 중장기적으로 유지 보수가 쉽다. 이전에 테스트 되었던 유닛 테스트를 반복하는 것을 regression 테스트라고 하는데 유닛테스만 반복하면 되기 때문에, regression 테스트도 반복적으로 수행할 수 있다.
  • 유닛 테스트를 잘 짜면 유닛테스트에서 되었던 코드에서는 버그가 거의 발견되지 않으며, 대부분 버그가 발견되는 경우는 유닛테스트가 없어서 발생하는 경우가 많다. 버그가 발견되었어도 버그를 수정한 후에 유닛테스트를 작성하면 버그를 방지할 수 있다.

Unit Test의 일반 원칙

  • 테스트 유닛은 각 기능의 가장 작은 단위에 집중하여 해당 기능이 동작되는지를 증명해야한다.
  • 각 테스트 유닛은 독립적이어야 한다. 이때, 호출되는 순서와 무관하게 잘 동작해야 한다. 새로운 데이터셋으로 각각의 테스트를 로딩해야 하고, 그 실행 결과는 꼭 삭제해야 한다. 보통 setUp()과 tearDown() 메소드로 작업한다.
  • 테스트가 빠르게 돌 수 있도록 작업해야 한다. 구조는 복잡하지 않게.
  • 그날의 코딩을 시작하기 전에 항상 풀 테스트 슈트를 돌리는 게 좋다. 끝난 후에도 마찬가지.
  • 모두가 공유하는 저장소에 코드를 집어넣기 전에 자동으로 모든 테스트를 수행하도록 하는 Hook을 구현하는게 좋다.
  • 한창 개발 중에 다른 작업을 진행해야 한다면, 다음에 개발할 부분에 일부러 고장난 유닛 테스트를 작성하는 것도 좋은 방법.
  • 테스트 함수에는 길고 서술적인 이름을 작성하는게 좋다.
profile
일단 공부가 '적성'에 맞는 개발자. 근성있습니다.

0개의 댓글