unit test 염두할 점

cpp unit, gtest 등의 unit test 를 사용하며 생각해 볼만한 점들을 기록해 둡니다

  • 독립성
    • 실제 제품 코드보다 빠른 확인과 처리,디버깅
  • 반복
    • ASSERT_* / EXPECT_* 로 필수/연속테스트 가능
  • 이식성
    • 다양한 플랫폼에서 사용가능
  • 재사용
    • 연관된 데이터의 연속 사용이 가능하며 그룹화 가능
  • 속도
    • 테스트간 공유 리소스 처리가 가능함
  • 공유 리소스

유닛 테스트 작성 그 자체는 사실 어렵진 않지만…

  • 두 번 일하는 느낌
    • 습관이 중요하다
    • 하다보면 익숙해져서 결국 코드를 짜는 패턴이 바뀔 것 같다
  • 테스트 케이스 볼륨
    • 마찬가지로 익숙해 진다면 머리속에서 뿐아니라 선행 정리가 될듯
  • 테스트 케이스를 위한 단편 적인 구현
    • 역설적이지만 unit test 구현을 must 해야 한다고 생각하다보면 실제 구현 자체가 단편적으로 하나의 기능을 하도록 구현하는게 익숙하게 될것 같다

gtest 에서는 개체를 공유해서 다른 테스트에서도 사용 가능하다
이를 testfixture 라고 하며 ::testing::Test 를 상속받아 사용하고 void SetUp() >> void TearDown() 구조로 해당 개체의 시작과 끝을 관리한다

유닛 테스트가 좀더 편하려면

  • 단순한 In 그에 대한 기대 Out
  • 하나의 기능단위
  • 요구하는 세부 기능단위의 예상 및 관리
  • 필요시 복잡한 데이터의 dumping
  • private 함수에 대한 고려

다음 글에 gtest 의 대략적인 내용을 기록하고자 한다


댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다