[xUnit 테스트 패턴] 07장 - xUnit 기초


07장 - xUnit 기초

공통 특징

  • 테스트를 테스트 메소드로 명시
  • 단언 메소드(Assertion Method) 호출로 테스트 메소드 내에서 기대 값을 명시
  • 테스트들을 테스트 스위트에 모아두기 - 한번에 실행 가능
  • 하나 이상의 테스트를 돌린 후 테스트 결과 보고 받기

최소한 알아야 할 것

테스트 정의하기

  • 테스트 픽스처 설치
    • 인라인 설치, 위임 설치, 암묵적 설치
  • SUT 실행
    • SUT의 public, private 인터페이스의 메소드
  • 원하는 결과 값이 나왔는지 검증
    • 단언 메소드를 호출
  • 테스트 픽스처 해체
    • 가비지 컬렉션 해체, 인라인 해체, 암묵적 해체, 자동 해체

픽스처란

  • SUT를 실행하기 위해 준비해야 하는 모든 것
    • 테스트하려는 메소드가 있는 클래스 객체
    • SUT가 의존하는 다른 객체

테스트들의 스위트 정의

  • 테스트케이스 클래스의 모든 테스트 메소드를 담고 있는 것
    • 클래스용 단위 테스트 스위트 -> 패키지, 모듈, 전체 시스템용 테스트 스위트에 포함 가능
    • 계층 구조를 만들면 테스트 스위트들을 다양한 수준에서 완결성 있게 실행 가능
    • 개발자가 관심 있는 부분에 관련된 테스트만 실행 가능

테스트 실행

  • 테스트 실행기(Test Runner)를 통해 실행
    • 그래픽 테스트 실행기, 커맨드라인 테스트 실행기 등등

테스트 결과

  • 의미 있는 결과
    • 표준화된 방법으로 결과를 표현해야 함
  • 헐리우드 원칙
    • “전화 걸지 마세요. 우리가 걸테니”
    • 문제가 발생할 때에만 알려줌
  • 성공
    • 에러나 실패 없이 돌아감
  • 실패
    • 단언문 실패
    • 비정상적으로 실패
      • 예외처리가 안 된 예외나 에러 발생