이 책은 단위 테스트라는 주제를 둘러싼 모범 사례와 일반적인 안티 패턴에 대한 인사이트를 제공한다. 이 책을 읽고 나면 새로운 기술로 무장해서 유지 보수와 확장이 쉽게 프로젝트를 성공시키는 전문가가 되는 데 필요한 지식을 얻게 된다.
이 책은 맹목적인 테스트 노력에서 벗어나 실용적인 테스트 구성에 대한 방법론으로 접근한다. 클린 아키텍처 등 자칫 이론으로만 치부할 수 있는 내용을 실무에서 접했을 만한 예제로 어떻게 구성할 수 있는지, 그리고 이 합리적인 구성이 어떻게 테스트를 효과적으로 작성하고 유지할 수 있는지를 하나씩 돌아볼 수 있다.
이 책의 구성: 로드맵
책 구성 |
이 책의 11개 장은 크게 네 개 부로 나뉜다.
1부에서는 단위 테스트를 소개하고 일반적인 단위 테스트 원칙을 살펴본다.
- 1장에서는 단위 테스트의 목표를 정의하고 좋은 테스트와 좋지 않은 테스트를 구별하는 방법을 개략적으로 살펴본다.
- 2장에서는 단위 테스트의 정의와 단위 테스트의 두 분파를 설명한다.
- 3장에서는 단위 테스트 구성, 테스트 픽스처itest fixture 재사용, 테스트 매개변수와 같은 몇 가지 기본 주제를 되짚어본다.
2부에서는 주제의 핵심을 다룬다. 좋은 단위 테스트를 만드는 방법을 알아보고 테스트를 좀 더 가치 있게 리팩터링하는 방법을 자세히 살펴본다.
- 4장에서는 좋은 단위 테스트를 구성하고 이 책 전체에서 사용되는 공통적인 기준틀이 되는 4대 요소를 정의한다.
- 5장에서는 목(mock)에 대한 사례를 구축하고 테스트 취약성과의 관계를 알아본다.
- 6장에서는 단위 테스트의 세 가지 스타일을 살펴보고, 그중 가장 품질이 좋은 스타일은 어느 것이고 그 이유는 무엇인지 알아본다.
- 7장에서는 테스트를 너무 복잡해지지 않게 리팩터링하고 최소한의 유지비로 최대한의 가치를 얻는 방법을 설명한다.
3부에서는 통합 테스트와 관련된 내용을 다룬다.
- 8장에서는 통합 테스트가 무엇인지 알아보고, 그 장점과 절충에 대해 전반적으로살펴본다.
- 9장에서는 목에 대해 알아보고, 목이 어떻게 테스트에 큰 도움이 되는지를 설명한다.
- 10장에서는 테스트에서 관계형 데이터베이스와 어떻게 작업하는지를 설명한다.
4부의 11장에서는 일반적인 단위 테스트 안티 패턴을 살펴본다. 아마도 그중 몇몇은 전에 만난 적이 있을 수도 있다.
예제 코드 다운로드
예제 코드는 C#으로 작성돼 있지만, 여기서 설명하는 주제는 자바Java나 C++와 같은 모든 객체지향 언어에 적용할 수 있다. C#은 단지 가장 많이 사용하는 언어일 뿐이다. C#에 특화된 언어 특성을 사용하지 않으려고 노력했으며 예제 코드를 최대한 간단하게 작성했으므로 이해하는 데 어려움이 없을 것이다.
예제 코드는 매닝출판사 도서정보 페이지 www.manning.com/books/unit-testing에서 다운로드할 수 있다
기타 온라인 자료
- 저자의 블로그: EnterpriseCraftsmanship.com
- 단위 테스트에 대한 온라인 과정도 있다. UnitTestingCourse.com에서 수강할 수 있다.