logo
logo
x
바코드검색
BOOKPRICE.co.kr
책, 도서 가격비교 사이트
바코드검색

인기 검색어

실시간 검색어

검색가능 서점

도서목록 제공

JUnit in Action

JUnit in Action

(단위 테스트의 모든 것)

피터 타치브, 펠리페 레미, 빈센트 마솔, 게리 그레고리 (지은이), 개앞맵시 (옮긴이)
인사이트
33,000원

일반도서

검색중
서점 할인가 할인률 배송비 혜택/추가 실질최저가 구매하기
알라딘 로딩중
yes24 로딩중
교보문고 로딩중
11st 로딩중
영풍문고 로딩중
쿠팡 로딩중
쿠팡로켓 로딩중
G마켓 로딩중
notice_icon 검색 결과 내에 다른 책이 포함되어 있을 수 있습니다.

중고도서

검색중
서점 유형 등록개수 최저가 구매하기
알라딘 판매자 배송 37개 1,800원 >
로딩중

eBook

검색중
서점 정가 할인가 마일리지 실질최저가 구매하기
로딩중

책 이미지

JUnit in Action
eBook 미리보기

책 정보

· 제목 : JUnit in Action (단위 테스트의 모든 것)
· 분류 : 국내도서 > 컴퓨터/모바일 > 웹디자인/홈페이지 > HTML/JavaScript
· ISBN : 9788966260065
· 쪽수 : 644쪽
· 출판일 : 2011-06-23

책 소개

JUnit in Action의 개정판으로 기본적인 단위 테스트 및 격리 테스트를 위한 목(mock) 객체 사용법부터 Java EE나 데이터베이스 애플리케이션을 위한 In-container 테스트 방법은 물론 Ant, Maven, Cactus을 이용한 테스트 등을 포괄적으로 다룬다. 무엇보다 저자들의 수많은 실무 경험을 바탕으로 테스트 자동화 등 실무에서 꼭 필요한 현실적인 요구사항의 해법까지 제시한다.

목차

역자 서문
서문
초판의 서문
감사의 글
이 책에 대해
저자 소개
표지 일러스트 소개

1부 JUnit 기본

1장 JUnit 첫걸음
1.1 동작 증명하기
1.2 밑그림부터 시작하기
1.3 단위 테스트 프레임워크 이해하기
1.4 JUnit의 설계 목표
1.5 JUnit 셋업하기
1.6. JUnit으로 테스트 실행하기
1.7 정리

2장 JUnit 핵심 들여다보기
2.1. JUnit의 핵심
2.2 파라미터화 테스트 실행하기
2.3 JUnit 테스트 러너
2.3.1 테스트 러너 개요
2.3.2 JUnitCore 퍼사드
2.3.3 자신만의 테스트 러너 만들기
2.4 스위트를 이용한 테스트 조직하기
2.4.1. 테스트 클래스 집합 만들기
2.4.2 스위트의 스위트 만들기
2.4.3 스위트 vs. IDE, Ant, Maven
2.5 정리

3장 JUnit 마스터하기
3.1 컨트롤러 컴포넌트 소개
3.1.1 인터페이스 설계하기
3.1.2 기반 클래스 구현하기
3.2 자! 이제 테스트다!
3.2.1 DefaultController 테스트하기
3.2.2 핸들러 추가하기
3.2.3 요청 처리하기
3.2.4 testProcessRequest 개선하기
3.3 예외 처리 테스트하기
3.3.1 예외 상황 시뮬레이션하기
3.3.2 예외 테스트하기
3.4 타임아웃 테스트하기
3.5 Hamcrest 매처 소개
3.6 테스트 프로젝트 셋업하기
3.7 정리

4장 소프트웨어 테스트 원칙
4.1 단위 테스트가 필요한 이유
4.1.1 높은 테스트 커버리지 달성
4.1.2 팀 생산성 향상
4.1.3 회귀 테스트 수행 및 디버깅 감소
4.1.4 확신에 찬 리팩터링
4.1.5 구현 품질 향상
4.1.6 기대 행위 문서화
4.1.7 코드 커버리지 등 각종 측정이 가능
4.2. 테스트의 종류
4.2.1 소프트웨어 테스트의 네 가지 종류
4.2.2 단위 테스트의 종류 세 가지
4.3 블랙박스 테스트와 화이트박스 테스트
4.4 정리

2부 다채로운 테스트 전략

5장 테스트 커버리지와 개발
5.1 테스트 커버리지 측정하기
5.1.1 테스트 커버리지란?
5.1.2 Cobertura 소개
5.1.3 테스트 커버리지 보고서 생성하기
5.1.4 블랙박스 테스트와 화이트박스 테스트 혼용하기
5.2. 테스트 가능한 코드 작성하기
5.2.1 공개 API는 계약이다
5.2.2 종속성을 줄여라
5.2.3 생성자는 간단하게 만들어라
5.2.4 최소 지식의 원칙을 따르라
5.2.5 숨겨진 종속성과 전역 상태를 피하라
5.2.6 싱글톤의 장단점
5.2.7 제너릭 메서드를 애용하라
5.2.8 상속보다 컴포지션을 활용하라
5.2.9 조건 분기보다 다형성을 활용하라
5.3. 테스트 주도 개발
5.3.1 개발 주기 조정하기
5.3.2 TDD 실천으로 가는 두 단계
5.4 개발 주기에서의 테스트
5.5 정리

6장 스텁을 활용한 포괄적인 테스트
6.1. 스텁이란?
6.2 HTTP 커넥션을 스텁으로 대체하기
6.2.1 스텁 방식 선택하기
6.2.2 임베디드 서버로 Jetty 활용하기
6.3 웹 서버의 리소스를 스텁으로 대체하기
6.3.1 첫 번째 스텁 테스트 설정하기
6.3.2 실패 조건 테스트하기
6.3.3 첫 번째 스텁 테스트 되돌아보기
6.4 커넥션 스텁 작성하기
6.4.1 커스텀 URL 프로토콜 핸들러 제작하기
6.4.2 JDK HttpURLConnection 스텁 작성하기
6.4.3 테스트 실행하기
6.5 정리

7장 목 객체를 활용한 테스트
7.1 목 객체 소개하기
7.2 목 객체를 활용해 단위 테스트하기
7.3 목 객체와 함께 리팩터링하기
7.3.1 예제 리팩터링하기
7.4 HTTP 커넥션을 목으로 대체하기
7.4.1 목 객체 정의하기
7.4.2 예제 메서드 테스트하기
7.4.3 첫 번째 시도: 손쉬운 메서드 리팩터링 기법
7.4.4 두 번째 시도: 클래스 팩토리를 활용한 리팩터링
7.5 목 객체를 트로이 목마로 사용하기
7.6 목 프레임워크 만나보기
7.6.1 EasyMock 활용하기
7.6.2 JMock 활용하기
7.7 정리

8장 In-container 테스트
8.1 표준 단위 테스트의 한계
8.2 목 객체를 이용한 해법
8.3 In-container 테스트
8.3.1 전략 구현하기
8.3.2 In-container 테스트 프레임워크
8.4 스텁, 목 객체, In-container 테스트 비교하기
8.4.1 스텁의 장단점
8.4.2 목 객체의 장단점
8.4.3 In-container 테스트의 장단점
8.4.4 In-container 테스트 vs. Out-of-container 테스트
8.5 정리

3부 JUnit과 빌드 프로세스

9장 Ant로 JUnit 테스트 실행하기
9.1 개발자의 하루
9.2 Ant로 테스트 실행하기
9.3 Ant 소개 및 설치하기
9.4 Ant의 타깃, 프로젝트, 속성, 태스크 알아보기
9.4.1 javac 태스크
9.4.2 junit 태스크
9.5 Ant 실행하기
9.6 Ivy를 이용한 종속성 관리
9.7 HTML 보고서 생성하기
9.8 테스트 일괄 수행하기
9.9 정리

10장 Maven2로 JUnit 테스트 실행하기
10.1 Maven의 특성
10.1.1 규약이 설정에 우선한다
10.1.2 강력한 종속성 관리
10.1.3 Maven 빌드 생명주기
10.1.4 플러그인 기반 아키텍처
10.1.5 Maven 프로젝트 객체 모델(POM)
10.2 Maven 프로젝트 구성하기
10.3 Maven 플러그인 소개하기
10.3.1 Maven Compiler 플러그인
10.3.2 Maven Surefire 플러그인
10.3.3 Maven으로 HTML JUnit 보고서 생성하기
10.4 Maven의 부정적 측면
10.5 정리

11장 지속적 통합 툴
11.1 지속적 통합의 맛
11.1.1 지속적 통합 테스트
11.2 구원투수 CruiseControl
11.2.1 CruiseControl 시작하기
11.2.2 견본 프로젝트 설정하기
11.2.3 CruiseControl 설정 파일 살펴보기
11.3 또 하나의 멋진 구원자 Hudson
11.3.1 Hudson 소개하기
11.3.2 Hudson 설치하기
11.3.3 Hudson 설정하기
11.3.4 Hudson 안에 프로젝트 설정하기
11.4 지속적 통합으로 얻는 이점
11.5 정리

4부 JUnit 확장

12장 표현 계층 테스트하기
12.1 테스트 프레임워크 선택하기
12.2 HtmlUnit 소개하기
12.2.1 실생활에서 찾을 수 있는 예
12.3 HtmlUnit 테스트 작성하기
12.3.1 HTML 단언
12.3.2 특정 웹 브라우저를 위한 테스트
12.3.3 다수의 웹 브라우저 테스트
12.3.4 독립형 테스트 작성하기
12.3.5 객체 모델 내비게이션
12.3.6 원소 타입으로 원소 접근하기
12.3.7 이름 vs. 인덱스로 원소 접근하기
12.3.8 참고를 통해 원소 접근하기
12.3.9 XPath 사용하기
12.3.10 테스트 실패와 예외
12.3.11 애플리케이션과 인터넷 내비게이션
12.3.12 HtmlUnit으로 폼 테스트하기
12.3.13 프레임 테스트하기
12.3.14 자바스크립트를 이용해 테스트하기
12.3.15 CSS 테스트하기
12.3.16 SSL 에러
12.4 HtmlUnit과 Cactus 함께 사용하기
12.4.1 Cactus로 테스트 작성하기
12.5 Selenium 소개
12.6 Selenium 테스트 생성하기
12.6.1 실생활에서 찾을 수 있는 예
12.7 Selenium 테스트 실행하기
12.7.1 Selenium 서버 관리하기
12.7.2 JUnit 4로 Selenium 테스트 실행하기
12.8 Selenium 테스트 작성하기
12.8.1 특정 웹 브라우저를 겨냥한 테스트 수행하기
12.8.2 브라우저별 테스트 한 번에 수행하기
12.8.3 애플리케이션과 인터넷 내비게이션
12.8.4 참조를 이용해 원소 접근하기
12.8.5 예외를 발생시켜 테스트 실패시키기
12.8.6 Selenium으로 폼 테스트하기
12.8.7 자바스크립트 경고를 이용해 테스트하기
12.8.8 JUnit 3 테스트 실패 시 화면 캡처하기
12.8.9 JUnit 4 테스트 실패 시 화면 캡처하기
12.9 HtmlUnit vs. Selenium
12.10 정리

13장 Ajax 테스트하기
13.1 Ajax 애플리케이션 테스트는 왜 어려운가?
13.1.1 웹의 전통적 상호작용 방식
13.1.2 Ajax의 상호작용
13.1.3 용감한 신세계
13.1.4 테스트를 위해 극복해야 할 난제들
13.2 Ajax 테스트 패턴
13.2.1 기능 테스트
13.2.2 클라이언트단 스크립트 단위 테스트하기
13.2.3 서비스 테스트하기
13.3 기능 테스트
13.3.1 Selenium을 이용해 기능 테스트하기
13.3.2 HtmlUnit을 이용해 기능 테스트하기
13.4 자바스크립트 테스트하기
13.4.1 RhinoUnit으로 자바스크립트 테스트하기
13.4.2 JsUnit으로 자바스크립트 테스트하기
13.4.3 JsUnit 테스트 작성하기
13.4.4 JsUnit 테스트 스위트 작성하기
13.4.5 수동으로 JsUnit 테스트 수행하기
13.4.6 Ant로 JsUnit 테스트 실행하기
13.5 RhinoUnit vs. JsUnit
13.6 JSLint로 모범 사례 이행 여부 검사하기
13.7 HttpClient로 서비스 테스트하기
13.7.1 XML 서비스 호출하기
13.7.2 XML 응답 검증하기
13.7.3 JSON 응답 검증하기
13.8 Google Web Toolkit 애플리케이션 테스트하기
13.8.1 GWT 애플리케이션용 테스트 프레임워크 선택하기
13.8.2 수작업으로 GWTTestCase 작성하기
13.8.3 junitCreator로 GWTTestCase 생성하기
13.8.4 테스트 케이스 실행하기
13.8.5 setUp과 tearDown
13.8.6 테스트 스위트 만들기
13.8.7 테스트 스위트 실행하기
13.9 정리

14장 Cactus를 이용한 서버단 자바 테스트하기
14.1 Cactus란 무엇인가?
14.2 Cactus를 이용해 테스트하기
14.2.1 Cactus로 테스트할 수 있는 자바 컴포넌트
14.2.2 일반 원칙
14.2.3 Cactus 동작 메커니즘
14.3 서블릿과 필터 테스트하기
14.3.1 관리 애플리케이션 소개하기
14.3.2 Cactus를 이용한 서블릿 테스트 작성하기
14.4 JSP 테스트하기
14.4.1 관리 애플리케이션 재조명해보기
14.4.2 JSP 단위 테스트란?
14.4.3 Cactus를 이용해 격리된 환경에서 JSP 단위 테스트하기
14.4.4 SQL 결과 데이터로 JSP 실행하기
14.5 EJB 테스트하기
14.6 Cargo란 무엇인가?
14.7 Ant로 Cactus 테스트 실행하기
14.7.1 아카이브 준비를 위한 Cactus 태스크
14.8 Maven2x를 이용해 Cactus 테스트 실행하기
14.8.1 Maven2의 cactifywar MOJO
14.8.2 Maven2의 cactifyear MOJO
14.9 브라우저로부터 Cactus 테스트 실행하기
14.10 정리

15장 JSP 애플리케이션 테스트하기
15.1 JSF 소개하기
15.2 애플리케이션 예제 소개하기
15.3 JSF 애플리케이션 테스트 시의 전형적인 난관들
15.4 JSF 애플리케이션 테스트 전략
15.4.1 블랙박스 방식
15.4.2 구원 투수 목 객체 투입
15.5 JSFUnit으로 예제 애플리케이션 테스트하기
15.5.1 브라우저로 JSFUnit 테스트 실행하기
15.5.2 JSFUnit을 이용해 Ajax 테스트하기
15.6 JSFUnit과 HtmlUnit 함께 사용하기
15.7 JSF 애플리케이션 성능 테스트하기
15.8 정리

16장 OSGi 컴포넌트 테스트하기
16.1 OSGi 소개하기
16.2 첫 번째 OSGi 서비스
16.2.1 예제 애플리케이션
16.3 OSGi 서비스 테스트하기
16.3.1 목 객체
16.4 JUnit4OSGi 소개하기
16.5 정리

17장 데이터베이스 액세스 테스트하기
17.1 데이터베이스 단위 테스트 임피던스 미스매치
17.1.1 단위 테스트는 격리된 환경에서 수행해야 한다
17.1.2 단위 테스트는 쉽게 작성하고 쉽게 실행할 수 있어야 한다
17.1.3 단위 테스트는 빠르게 수행되어야 한다
17.2 DbUnit 소개하기
17.2.1 예제 애플리케이션
17.2.2 DbUnit 설정 및 예제 애플리케이션 실행하기
17.3 데이터셋을 이용해 데이터베이스 채우기
17.3.1 DatabaseOperation 해부
17.4 데이터셋으로 데이터베이스 상태 확인하기
17.4.1 데이터셋 필터링하기
17.4.2 열 무시하기
17.5 ReplacementDataSet를 이용해 데이터 변환하기
17.5.1 ReplacementDataSet을 이용해 다른 ID 문제를 처리하기
17.5.2 NULL 값 처리하기
17.6 데이터베이스 안의 데이터로부터 데이터셋 생성하기
17.7 고급 기법
17.7.1 DbUnit과 템플릿 디자인 패턴
17.7.2 커스텀 애노테이션으로 재활용성 높이기
17.7.3 데이터셋에 표현 언어 사용하기
17.8 데이터베이스 액세스 테스트 모범 사례
17.8.1 개발자마다 하나의 데이터베이스를 사용하라
17.8.2 대상 데이터베이스가 테스트되는지 확인하라
17.8.3 데이터를 읽고 저장하는 보조적인 테스트를 만들라
17.8.4 읽기 테스트 케이스에서 모든 기본 시나리오를 검증하라
17.8.5 데이터셋 용도를 계획하라
17.8.6 테스트 정리
17.9 정리

18장 JPA 기반 애플리케이션 테스트하기
18.1 계층형 애플리케이션 테스트하기
18.1.1 예제 애플리케이션
18.1.2 다양한 계층, 다양한 테스트 전략
18.2 JPA 테스트의 특징
18.3 인프라 갖추기
18.4 JPA 엔티티 매핑 테스트하기
18.4.1 테스트 케이스에 JPA ID 생성기 통합하기
18.5 JPA 기반 DAO 테스트하기
18.6 외래키 이름 테스트하기
18.7 정리

19장 JUnit에 부스터를...
19.1 툴 소개
19.1.1 툴 살펴보기
19.1.2 예제 실행하기
19.2 투명 목 활용
19.2.1 Unitils의 EasyMock 지원
19.2.2 FEST-Mocks
19.2.3 Mycila
19.3 DbUnit 통합
19.4 assert는 일을 쉽게 만든다
19.4.1 JUnit-addons의 단언 패키지
19.4.2 Unitils의 ReflectionAssert
19.4.3 FEST Fluent Assertions Module
19.4.4 Mycila 확장 assert 문
19.5 리플렉션을 이용해 캡슐화 회피하기
19.5.1 직접 만들어보기
19.5.2 JUnit-addons
19.5.3 FEST-Reflect
19.6 정리

부록A JUnit 3와 4의 차이점
A.1 전반적인 변화
A.1.1 JDK 요구사항
A.1.1 하위/상위 호환성
A.2 API의 변화
A.2.1 패키지 구조
A.2.2 생성자
A.2.3 테스트 케이스 확장하기
A.2.4 테스트 메서드 이름
A.3 애노테이션과 정적 임포트의 도입
A.3.1 @Before와 @After 애노테이션
A.3.2 @BeforeClass와 @AfterClass 애노테이션
A.3.3 일부 테스트를 제외하고 실행시키기
A.3.4 정적 임포트
A.3.5 예외 테스트하기
A.3.6 타임아웃 테스트하기
A.4 추가된 JUnit 러너
A.4.1 테스트 러너
A.4.2 테스트 스위트
A.4.3 파라미터화 테스트
A.5 새로운 assert 문과 가정
A.5.1 Hamcrest assert 문
A.5.2 가정
A.5.3 새로 추가된 assert 문
A.5.4 assert 에러

부록B 커스텀 러너와 매처로 JUnit API 확장하기
B.1 인터셉터 패턴 소개하기
B.2 커스텀 러너 제작하기
B.3 커스텀 매처 구현하기

부록C 책의 소스 코드
C.1 소스 코드 얻기
C.2 소스 코드 개요
C.3 외부 라이브러리
C.4 JAR 버전
C.5 디렉터리 구조 규약

부록D JUnit IDE 통합
D.1 이클립스에 통합된 JUnit
D.1.1 이클립스 설치하기
D.1.2 소스로부터 이클립스 프로젝트 설정하기
D.1.3 이클립스에서 JUnit 테스트 실행하기
D.1.4 이클립스에서 Ant 스크립트 실행하기
D.2 JUnitMAX 이클립스 플러그인 소개
D.2.1 개발 주기에 통합됨
D.2.2 실행 순서
D.2.3 마지막 안정 버전으로 되돌리기
D.3 NetBeans에 통합된 JUnit
D.3.1 NetBeans 설치하기
D.3.2 소스로부터 NetBeans 프로젝트 설정하기
D.3.3 NetBeans에서 JUnit 테스트 실행하기
D.3.4 NetBeans에서 Ant 스크립트 실행하기

부록E 소프트웨어 설치하기
E.1 HtmlUnit 설치하기
E.1.1 표준 설정
E.1.2 이클립스 설정
E.2 HtmlUnit을 사용할 수 있도록 Cactus 설정하기
E.3 Selenium 설치하기
E.4 RhinoUnit 설치하기
E.5 JsUnit 설치하기

찾아보기

저자소개

피터 타치브 (지은이)    정보 더보기
Apache Software Foundation의 Jakarta PMC 멤버로 활동한 소프트웨어 엔지니어다. 수년 동안 Jakarta Cactus의 주요 개발자 및 Apache Maven 개발팀의 일원으로 활동했다. 소피아 대학의 수학과를 졸업 후 독일과 네덜란드에서 Unic나 휴렛 팩커드 등에서 수년간 일하였다. 지금은 소피아로 돌아와, 업무 개선을 위한 기술을 지원하고 컨설팅하는 Phamola사를 설립하여 일하고 있다.
펼치기
펠리페 레미 (지은이)    정보 더보기
TDD(테스트 주도 개발)와 자바, 컴퓨터 전반에 걸쳐 굉장히 열정적인 소프트웨어 엔지니어다. 캄피나스(유니캠프) 주립 대학에서 컴퓨터 공학 학사 학위를 받은 후 DbUnit 등 오픈소스 프로젝트에 소스 코드를 제공하거나, JavaOne 같은 컨퍼런스에서는 발표자로, JCP에는 개인 멤버 또는 블로거로 게다가 java.net의 저자로도 활동하였다.
펼치기
빈센트 마솔 (지은이)    정보 더보기
Jakarta Cactus와 Codehaus Cargo 개발에 수년 간 몸담아 왔고, 저녁 시간에는 Apache Maven 오픈소스 프로젝트에 참여하였다. 그리고 지금은 XWiki라는 최신의 기업용 오픈소스 위키 프로젝트에 전임 개발자로 일하고 있다. 빈센트는 XWiki 오픈소스 프로젝트 관련 서비스를 제공하는 XWiki SAS사의 CTO 이기도 하다. 그는 이 책의 초판의 핵심 저자였다. www.massol.net에서도 만나볼 수 있다.
펼치기
게리 그레고리 (지은이)    정보 더보기
스몰토크(Smalltalk)와 자바 등에서 20년 이상의 경험을 갖고 있다. Ashton-Tate와 ParcPlace-Digitalk사 등에서 근무하였고, 지금은 Seagull Software사에서 레거시 통합용 애플리케이션 서버를 개발하고 있다. 또 Apache Software Foundation와 Apache Jakarta Project Management Committee의 회원으로 활동 중이다. L.A.의 캘리포니아 대학에서 언어학과 컴퓨터 과학 학사 학위를 취득했으며, http://www.garygregory.com에서도 만나볼 수 있다.
펼치기
개앞맵시(이복연) (옮긴이)    정보 더보기
고려대학교 컴퓨터학과를 졸업하고 삼성전자에서 자바 가상 머신, 스마트폰 플랫폼, 메신저 서비스 등을 개발했다. 주 업무 외에 분산 빌드, 지속적 통합, 앱 수명주기 관리 도구, 애자일 등 동료 개발자들에게 실질적인 도움을 주는 일에 관심이 많았다. 그 후 창업전선에 발을 들여 좌충우돌하다가 개발자 커뮤니티에 기여하는 더 나은 방법을 찾아 출판 시장에 뛰어들었다. 『밑바닥부터 시작하는 딥러닝』 시리즈, 『구글 엔지니어는 이렇게 일한다』, 『리팩터링 2판』, 『JVM 밑바닥까지 파헤치기』, 『이펙티브 자바 3판』 등을 번역했다. - 페이스북: facebook.com/dev.loadmap - 개앞맵시에게 번역이란: brunch.co.kr/@wegra/27
펼치기

추천도서

이 포스팅은 쿠팡 파트너스 활동의 일환으로,
이에 따른 일정액의 수수료를 제공받습니다.
이 포스팅은 제휴마케팅이 포함된 광고로 커미션을 지급 받습니다.
도서 DB 제공 : 알라딘 서점(www.aladin.co.kr)
최근 본 책