단위테스트 작성하기

송수용·2022년 6월 16일
0

백엔드의 기술

목록 보기
7/11

단위 테스트 작성하기

TDD(Test-Driven Development)와 단위테스트의 차이

  • TDD는 테스트가 주도하는 개발
  • 테스트 코드를 먼저 작성하는 것부터 시작

  • 항상 실패하는 테스트를 먼저 작성한다. (RED)
  • 테스트가 통과하는 프로덕션 코드를 작성한다. (GREEN)
  • 테스트가 통과하면 프로덕션 코드를 리팩토리한다.(REFACTOR)

단위테스트

  • TDD의 첫 번째 단계인 기능 단위의 테스트 코드를 작성
  • TDD와 달리 테스트 코드를 꼭 먼저 작성해야하는 것은 아니다.
  • 리팩토링도 포함되지 않는다.

테스트 코드를 작성해야하는 이유

  • 단위 테스트는 개발단계에서 초기에 문제를 발견하게 도와준다
  • 단위 테스트는 개발자가 나중에 코드를 리팩토링하거나 라이브러리 업그레이드 등에서 기존 기능이 올바르게 작동하는지 확인할 수 있다 (회귀 테스트)
  • 단위 테스트는 기능에 대한 불확실성을 감소시킬 수 있다
  • 단위 테스트는 시스템에 대한 실제 문서를 제공한다.
    • 단위 테스트 자체가 문서로 사용될 수 있다.
  • 테스트 코드를 작성하면 자동 검증이 가능하다
    • 개발자가 만든 기능을 안전하게 보호해준다.
    • 기존에 잘되던 A 기능에 문제가 생긴 것을 발견
  • 새로운 기능이 추가 될 때 기존 기능이 잘 작동되는 것을 보장한다.

테스트 코드 작성 프레임 워크

  • JUnit - Java
  • DBUnit - DB

Junit과 비교해 assertj의 장점

  • CoreMatchers와 달리 추가적으로 라이브러리가 필요하지 않다.
    • Junit의 assertThat을 쓰게 되면 is()와 같이 CoreMatchers 라이브러리가 필요하다.
  • 자동완성이 좀 더 확실하게 지원된다.
    • IDE에서는 CoreMatchers와 같은 Matcher 라이브러리의 자동완성 지원이 약하다.
profile
#공부중 #협업 #소통중시 #백엔드개발자 #능동적 #워커홀릭 #스파르타코딩 #항해99 #미니튜터 #Nudge #ENTJ #브레인스토밍 #아이디어뱅크

0개의 댓글