[xUnit 테스트 패턴] 01장 - 간단하게 둘러보기


01장 - 간단하게 둘러보기

가장 확실하면서도 간단한 테스트 자동화 전략

  • 5가지 테스트 자동화 전략
    • 개발 프로세스
      • 코드 개발에 사용되는 프로세스가 테스트에 미치는 영향
    • 고객 테스트
      • 궁극적인 정의로서 가장 먼저 작성해야 하는 테스트
    • 단위 테스트
      • 설계가 점진적으로 나타나게 해주고 전체 코드가 전부 테스트 될 수 있게 해주는 테스트
    • 테스트 구성
      • 테스트 메소드와 테스트케이스 클래스 구성하는 방법

개발 프로세스

  • 어떤 상태를 성공이라고 할지에 대한 의견 일치를 볼 수 있다.
    • 소프트웨어를 개발하기 전에 고객이 테스트를 정의할 수 없다면 이미 문제가 있다.
  • 테스트 주도 개발을 하면 소프트웨어를 테스트 가능하게 할 수 있다.
    • 코드를 작성하기 전에 먼저 단위 테스트를 작성하고 여기에서 소프트웨어 설계를 이끌어 낸다.

고객 테스트

  • 고객이 시스템에 무엇을 기대하는지에 대한 핵심이 들어 있어야 한다.
  • 고객테스트는 성공했을 때 어떻게 보여야 하는지를 정의 함.
  • 개발 기간 동안 고객 테스트를 통해 실제 시스템이 어떻게 돌아가는지를 보여줄 수 있게 노력한다.

단위 테스트

  • 모든 테스트가 클래스의 public 인터페이스로 왕복 테스트(Round-Trp Test)를 하는 완전 자동 테스트여야 한다.
  • 각 테스트는 하나의 시나리오에 하나의 메소드 or 객체만 실행 되게 한다.
  • 문서로서의 테스트로도 쓸 수 있게 한다.

테스트 하기 쉬운 설계

  • 비즈니스 로직을 데이터베이스나 사용자 인터페이스와 분리 해야 함.

테스트 조직

  • 테스트케이스 클래스에 테스트 메소드가 많아지면 메소드나 필요한 픽스처별로 클래스를 나눈다.
    • 기능별 테스트케이스 클래스
    • 픽스처별 테스트 케이스 클래스
      • 암묵적 설치 : 모든 픽스처 설치 코드를 setUp 메소드에 옮겨 놓는다.