본문 바로가기

테스트

[테스트] Unit Test - 기초 개념 및 작성 원칙

Unit Test(단위 테스트)

Unit Test는 특정 함수나 소스코드 모듈이 의도된 대로 작동하는지 검증하기 검증하는 방법 중 하나이다. 기본적으로 특정 코드가 잘 작동하는 것을 검증하여 버그가 줄어들 뿐만 아니라 테스트 코드를 작성하면서 기존의 코드에 대한 개선점을 발견하여 더 좋은 코드를 작성할 수 있게 된다.

 

Unit Test 작성 방법

  • 하나의 테스트 케이스에서 최소한의 기능만 검증하고, 간결하게 작성한다.
  • 입력에 대한 결과를 검증하는 방식으로 작성하라.
  • 개발하는 부분 최대한을 커버하라.
  • Third Party Library는 잘 검증되었으리라 믿고 Unit Test의 검증 대상에서 제외하라

 

클린 테스트 코드를 작성하기 위한 FIRST 원칙

  • Fast: 테스트는 빠르게 동작하여 자주 실행시킬 수 있어야 한다.
  • Independent: 각 테스트는 독립적이어야 한다.
  • Repeatable: 어느 환경에서도 반복 가능해야 한다.
  • Self-Validating: 테스트는 성공 또는 실패로 bool 값으로 결과를 내어 자체적으로 검증되어야 한다.
  • Timely: 테스트는 적시에(실제 코드 구현하기 직전에) 구현해야 한다.

[기타] 안드로이드에서의 Unit Test

안드로이드에서는 뷰와 같은 다양한 안드로이드 컴포넌트가 존재하고, 이들은 실제 테스트 코드를 작성하기 매우 까다롭게 만든다. MVVM 패턴을 활용하여 뷰와 비즈니스 로직을 분리시키고, 의존성 주입을 통해 객체를 외부에서 주입받아 그나마 테스트 코드를 조금 더 쉽게 작성할 수 있다. 

 

이런 안드로이드 컴포넌트에 대한 종속성 때문에 안드로이드의 테스트 환경은 일반 test인 로컬 테스트와 Instrumented test인 계측 테스트로 나뉜다. Instrumented test에서는 안드로이드 컴포넌트에 대한 테스트가 가능하다.