[xUnit 테스트 패턴] 01장 - 간단하게 둘러보기
01장 - 간단하게 둘러보기
가장 확실하면서도 간단한 테스트 자동화 전략
- 5가지 테스트 자동화 전략
- 개발 프로세스
- 코드 개발에 사용되는 프로세스가 테스트에 미치는 영향
- 고객 테스트
- 궁극적인 정의로서 가장 먼저 작성해야 하는 테스트
- 단위 테스트
- 설계가 점진적으로 나타나게 해주고 전체 코드가 전부 테스트 될 수 있게 해주는 테스트
- 테스트 구성
- 테스트 메소드와 테스트케이스 클래스 구성하는 방법
개발 프로세스
- 어떤 상태를 성공이라고 할지에 대한 의견 일치를 볼 수 있다.
- 소프트웨어를 개발하기 전에 고객이 테스트를 정의할 수 없다면 이미 문제가 있다.
- 테스트 주도 개발을 하면 소프트웨어를 테스트 가능하게 할 수 있다.
- 코드를 작성하기 전에 먼저 단위 테스트를 작성하고 여기에서 소프트웨어 설계를 이끌어 낸다.
고객 테스트
- 고객이 시스템에 무엇을 기대하는지에 대한 핵심이 들어 있어야 한다.
- 고객테스트는 성공했을 때 어떻게 보여야 하는지를 정의 함.
- 개발 기간 동안 고객 테스트를 통해 실제 시스템이 어떻게 돌아가는지를 보여줄 수 있게 노력한다.
단위 테스트
- 모든 테스트가 클래스의 public 인터페이스로 왕복 테스트(Round-Trp Test)를 하는 완전 자동 테스트여야 한다.
- 각 테스트는 하나의 시나리오에 하나의 메소드 or 객체만 실행 되게 한다.
- 문서로서의 테스트로도 쓸 수 있게 한다.
테스트 하기 쉬운 설계
- 비즈니스 로직을 데이터베이스나 사용자 인터페이스와 분리 해야 함.
테스트 조직
- 테스트케이스 클래스에 테스트 메소드가 많아지면 메소드나 필요한 픽스처별로 클래스를 나눈다.
- 기능별 테스트케이스 클래스
- 픽스처별 테스트 케이스 클래스
- 암묵적 설치 : 모든 픽스처 설치 코드를 setUp 메소드에 옮겨 놓는다.