[단위테스트] FIRST 속성

Jiwoo Kim·2021년 3월 25일
0

단위테스트와 JUnit

목록 보기
5/9
post-thumbnail

5장 | 좋은 테스트의 FIRST 속성

FIRST

  • Fast
  • Isolated
  • Repeatable
  • Self-validating
  • Timely

Fast

  • 테스트 코드를 빠르게 유지하라.
  • 시스템이 커지면 단위 테스트도 실행하는 데 점점 오래 걸린다.
  • 단위 테스트의 가치는 대상 시스템에 대한 지속적이고 종합적인 빠른 피드백에 있다.
  • 설계를 깨끗하게 하고, 외부 자원 호출을 줄이고, 느린 테스트에 대한 의존성을 줄여야 한다.

Isolated

  • 직·간접적으로 상호 작용하는 코드를 최소화하라.
  • 외부 데이터 의존성은 테스트가 가용성 혹은 접근성을 이유로 실패할 가능성을 증가시킨다.
  • 다른 단위 테스트에 의존하지 않고, 어떤 순서나 시간에 관계없이 실행할 수 있어야 한다.

Repeatable

  • 반복 가능한 테스트는 실행할 때마다 결과가 같아야 한다.
  • 모든 테스트는 전적으로 프로그래머의 통제 하에 있어야 한다.
  • 직접 통제할 수 없는 외부 환경에 있는 항목들과 격리시켜야 한다.

    ex) 현재 시간을 나타내는 Mock 객체 사용

Self-validating

  • 테스트의 결과로 기대하는 것이 무엇인지 단언할 수 있어야 하고 검증할 수 있어야 한다.
  • 테스트에 필요한 어떤 설정 단계든 자동화를 해야 한다.

Timely

  • 단위 테스트로 적시에 코드를 검증해야 한다.
  • 역동적이고 새로운 코드들에 대해 우선적으로 단위 테스트를 수행하는 것이 효과적이다.

0개의 댓글