간편결제, 신용카드 청구할인
인터파크 롯데카드 5% (17,100원)
(최대할인 10만원 / 전월실적 40만원)
북피니언 롯데카드 30% (12,600원)
(최대할인 3만원 / 3만원 이상 결제)
NH쇼핑&인터파크카드 20% (14,400원)
(최대할인 4만원 / 2만원 이상 결제)
Close

Jasmine 자바스크립트 테스팅 : 대규모 자바스크립트 애플리케이션을 위한 강력한 단위 테스팅 기법

원제 : Jasmine JavaScript Testing
소득공제

2013년 9월 9일 이후 누적수치입니다.

판매지수 13
?
판매지수란?
사이트의 판매량에 기반하여 판매량 추이를 반영한 인터파크 도서에서의 독립적인 판매 지수입니다. 현재 가장 잘 팔리는 상품에 가중치를 두었기 때문에 실제 누적 판매량과는 다소 차이가 있을 수 있습니다. 판매량 외에도 다양한 가중치로 구성되어 최근의 이슈도서 확인시 유용할 수 있습니다. 해당 지수는 매일 갱신됩니다.
Close
공유하기
정가

20,000원

  • 18,000 (10%할인)

    1,000P (5%적립)

할인혜택
적립혜택
  • I-Point 적립은 마이페이지에서 직접 구매확정하신 경우만 적립 됩니다.
추가혜택
배송정보
  • 11/29(화) 이내 발송 예정  (서울시 강남구 삼성로 512)
  • 무료배송
주문수량
감소 증가
  • 이벤트/기획전

  • 연관도서(240)

  • 상품권

AD

책소개

[Jasmine 자바스크립트 테스팅]은 단위 테스팅을 처음 접하는 웹 개발자들을 위한 교재이다. 책에는 테스트 주도의 개발 방식 습득, 리콰이어JS로 애플리케이션 코드 모듈화, 테스트가 완료된 제이쿼리 플러그인 생성, 비동기 테스팅에서의 문제 해결과 모범 사례, 신속한 단위 테스팅을 수행하기 위한 스텁(Stub)과 스파이(Spy) 사용, 테스트 주도의 백본 애플리케이션, 운영 환경을 위한 자바스크립트 코드 최적화 등을 다루고 있다.

출판사 서평

★ 요약 ★

테스트 주도 개발(TDD), 행위 주도 개발(BDD)을 먼저 소개하고, 이러한 테스팅 개념을 구현한 재스민 툴의 사용법을 실제적인 자바스크립트 애플리케이션의 예를 들어 자세히 설명한다. 재스민을 이용한 단위 테스팅 방법뿐만 아니라 시논JS(SinonJS), 백본JS(BackboneJS), 리콰이어JS(RequireJS), 그런트JS(GruntJS) 등 모던 자바스크립트 개발에 특화된 다양한 툴들을 독자들이 자연스럽게 섭렵하여 실무에 바로 응용할 수 있도록 안내한다.

★ 이 책에서 다루는 내용 ★

■ 테스트 주도의 개발 방식 습득
■ 리콰이어JS로 애플리케이션 코드 모듈화
■ 테스트가 완료된 제이쿼리 플러그인 생성
■ 비동기 테스팅에서의 문제 해결과 모범 사례
■ 신속한 단위 테스팅을 수행하기 위한 스텁(Stub)과 스파이(Spy) 사용
■ 테스트 주도의 백본 애플리케이션
■ 운영 환경을 위한 자바스크립트 코드 최적화
■ 그런트JS로 강력한 도구화, 자동화 실현
■ 트래비스 CI(Travis-CI)로 클라우드에서 테스트 실행

★ 이 책의 대상 독자 ★

이 책은 단위 테스팅을 처음 접하는 웹 개발자들에게 필수 교본이다. 내용을 이해하려면 당연히 자바스크립트와 HTML에 대한 기본 지식은 필요하다. 애플리케이션 개발을 위한 진정한 플랫폼으로서 자바스크립트를 인정하고 모든 가능성을 이끌어내고 싶은 독자라면 누구나 환영이다.

★ 이 책의 구성 ★

1장, ‘재스민 시작’은 자바스크립트 애플리케이션 테스팅의 동기 부여를 해보는 시간이다. BDD의 개념을 소개하고 좋은 테스트를 작성하는 방법을 알아본다. 재스민 소스를 내려받아 테스트를 처음 작성해보는 일이 매우 간단함을 알게 될 것이다.

2장, ‘스펙 작성’에서는 테스트 주도 개발이 의도하는 사고 방식을 익히고, 테스트에 의해 자바스크립트 기능을 처음 코딩하게 될 것이다. 재스민의 기본적인 함수들, 그리고 테스트를 구성하는 방법을 알게 될 것이다. 재스민 매처(Jasmine Matcher)가 어떻게 작동하는지, 코드의 가독성을 향상시키기 위해 커스텀 매처를 작성하는 방법을 다룬다.

3장, ‘프론트엔드 코드 테스팅’에서는 유지 보수성이 좋은 코드를 작성하기 위한 몇 가지 패턴을 다룬다. 컴포넌트 단위로 사고하는 법을 배우고 모듈 패턴으로 어떻게 소스 파일을 잘 정돈할 수 있을지 알게 될 것이다. HTML 픽스처(fixture)의 개념을 소개하고, 화면에 렌더링할 HTML 코드를 서버 요청(request) 없이 어떻게 자바스크립트로 테스트하는지 배울 것이다. 재스민-제이쿼리(Jasmine-jQuery)라는 재스민 플러그인(plugin)과 jQuery로 더 나은 자바스크립트 테스트를 작성하는 법을 다룬다.

4장, ‘비동기 테스팅: AJAX’에서는 AJAX 요청까지 테스트해야 하는 도전적인 상황에서 비동기 코드를 재스민으로는 어떻게 테스트하는지 다룬다. 테스트 픽스처로 아주 간단한 HTTP 서버를 노드JS를 이용하여 만들어볼 것이다.

5장, ‘재스민 스파이’에서는 테스트 더블의 개념과 스파이(Spy)로 행위를 체크하는 방법에 대해 알아본다.

6장, ‘광속 단위 테스팅’에서는 AJAX 테스팅의 몇 가지 이슈들을 다루고 스텁(Stub)이나 페이크(Fake)(시논JS 페이크 서버 같은)로 더 빠른 테스트를 실행하는 방법을 소개한다.

7장, ‘백본 애플리케이션 테스팅’에서는 백본JS(BackboneJS)의 기본이 되는 4개 추상화 기능을 다루고, 테스트를 백본JS 애플리케이션으로 다시 작성하는 방법을 소개한다. 백본JS로 무엇을 테스트하고, 무엇을 테스트하지 말아야 할지 알아볼 것이다.

8장, ‘빌드 자동화’에서는 자동화의 강력한 파워에 대해 실감하게 될 것이다. 대규모 자바스크립트 애플리케이션에서 리콰이어JS(RequireJS)로 어떻게 의존성 관리를 하는지 알게 될 것이다. 모듈과 의존성 단위로 사고하게 되면서 테스트를 모듈 단위로 코딩하는 방법을 소개할 것이다. 또, 운영 환경으로 배포하기 위해 코드를 패킹(packing)하고 최소화하는 방법, 그리고 이러한 과정을 자동화시키는 방법까지 배우게 될 것이다. 팬텀JS(PhantomJS)로 브라우저 창을 띄우지 않고도 모든 테스트를 실행하면서 파일이 변경되면 자동으로 테스트가 재실행되게 하는 기술까지 섭렵하게 될 것이다.

9장, ‘마무리’에서는 자바스크립트 생태계에서의 테스팅과 도구화(tooling)에 대해 언급할 것이다.

부록 A. ‘제이쿼리 플러그인 테스트’에서는 jQuery 플러그인의 개념과 재스민으로 플러그인 개발을 어떻게 주도할 수 있을지 다룬다.

부록 B. ‘트래비스 CI를 이용한 지속적 통합’에서는 트래비스 CI(Travis CI)를 사용하여 자바스크립트 애플리케이션을 지속적으로 통합하기 위한 환경을 마련할 것이다.

부록 C. ‘재스민 2.0과 미래’에서는 앞으로 출시될 재스민 2.0 버전에서 바뀔 중요한 변경 사항들과 기존 버전에서 단계적으로 마이그레이션하는 방법을 소개한다.

★ 저자 서문 ★

이 책은 독자 여러분들을 더 나은 자바스크립트 개발자로 만들어줄 것이다. 여러분들은 이 책을 통해 재스민 ‘용어(idiom)’들로 테스트를 작성하는 법뿐만 아니라 자바스크립트 언어로 소프트웨어를 제작하는 데 꼭 필요한 모범 사례(best practice)를 배우게 될 것이다. 또 애플리케이션 개발을 위한 진정한 플랫폼으로서 자바스크립트의 가능성을 어떻게 이끌어낼 것인지, 어떻게 도구들을 활용하고 자동화시켜 개발자 여러분들이 좀 더 쉽게, 생산적으로 일할 수 있을지 살펴볼 것이다.

중요한 점은 이 책이 그저 에러 없이 실행되는 소프트웨어를 넘어 잘 만든(well-crafted) 소프트웨어를 제작하기 위한 기술에 초점을 두고 있다는 점이다.

웹 애플리케이션 개발 과정에서 자바스크립트로 테스트를 작성하고 이를 자동화시켜야 하는 실무적인 문제에 직면하게 될 여러분들에게 이 책은 충실한 가이드가 되어줄 것이다. 재스민, 시논JS(SinonJS), 리콰이어JS(RequireJS), 그런트(Grunt) 같은 기술들을 이용해서 말이다.

이 책에서는 간단한 기능의 주식 투자 조회기(Stock Market Investment Tracker) 애플리케이션을 개발하는 과정을 통해 테스트 주도 개발(TDD, Test-Driven Development)의 개념을 소개할 것이다. 주식이나 투자 같은 기본적인 도메인 클래스(domain class) 개발을 하면서 테스트란 무엇인지 먼저 기본을 익히고, 유지 보수가 용이한 브라우저 코드란 무엇인지 설명해줄 것이다. 그리고 의존성 관리, 자동화 빌드를 위해 백본JS와 리콰이어JS를 애플리케이션에 적용하면서 풀 리팩토링(full refactoring)을 하는 것으로 마무리할 것이다.

★ 옮긴이의 말 ★

자동화된 툴을 이용한 자바스크립트 코드 테스팅에 아직도 막연한 거부감을 가지고 계실 개발자분들이 적지 않을 것으로 생각합니다. 국내 웹 개발자 여러분들의 대부분의 업무 환경(적은 예산과 촉박한 일정, 그리고 잦은 요구 사항 변경)을 감안하면 테스팅을 위해 툴 사용법을 익히고 별도의 코드를 작성한다는 것이 딴 세상 소리처럼 들리는 것도 무리는 아닐 것입니다.

그러나 10여 년 전 켄트 벡(Kent Beck)이 TDD 개발 방법론을 주창한 이후, 선(先) 테스트 후(後) 개발 방식의 프로그래밍은 그 효과가 충분히 입증되었습니다. 물론, TDD가 모든 개발 프로젝트에서 적용 가능한 완벽한 솔루션이라고 할 수는 없겠지만, 비즈니스 로직을 구현하기 전에 테스트 코드를 먼저 작성함으로써 개발자 본인 스스로 목표를 분명히 정할 수 있고, ‘개발을 완료했다’라는 판단 기준을 객관적으로 제시할 수 있다는 점만으로도 충분히 매력적이라고 봅니다. 또 요건이 변경되어 코드를 수정해야 할 경우에도 번거롭고 많은 시간이 소요되는 테스팅 작업을 자동화하여 ‘기계가 나 대신 일을 해준다’는 뿌듯함을 느낄 수 있을 것입니다.

이 책은 재스민으로 자바스크립트 테스트 코드를 작성하는 방법뿐만 아니라 모던 자바스크립트 애플리케이션 개발에 필요한 노드JS, 백본JS, 리콰이어JS 등에 대해 다루고 있습니다. 이론적이고 교과서적인 설명이 아닌, 실제 현장에서 접할 수 있는 실전적인 예제 코드가 수록되어 있는 것도 또 다른 장점입니다. 여러분들이 이 책을 읽고 저자의 머리말 첫 문구처럼 ‘더 나은 자바스크립트 개발자’가 되는 것은 물론이고, 나이가 들어서도 학습의 끈을 놓지 않는, 꾸준히 성장하는 개발자가 되시기 바랍니다!

목차

1 재스민 시작
__자바스크립트: 나쁜 점들
__재스민과 BDD
__내려받아 실행해보기
__정리

2 스펙 작성
__주식 투자 조회기 애플리케이션
__재스민의 기본과 BDD 사고방식
__구성과 정리
__describe 중첩
____구성과 정리
____행위를 공유하여 스펙 코딩
__매처의 이해
____커스텀 매처
____내장 매처
________toEqual
________toBe
________toBeTruthy, toBeFalsy
________toBeUndefined, toBeNull, toBeNaN
________toBeDefined
________toContain
________toMatch
________toBeLessThan, toBeGreater
________toThrow
__정리

3 프론트엔드 코드 테스팅
__컴포넌트 관점으로 생각하기(뷰)
__모듈 패턴
__HTML 픽스처 사용
__기본적인 뷰 코딩 규칙
____뷰는 DOM 엘리먼트를 캡슐화해야 한다
____뷰를 옵저버와 통합해야 한다
__jQuery 매처로 뷰 테스팅
____toBe
____toContainHtml
____toContain
____toHaveValue
____toHaveAttr
____toBeFocused
____toBeDisabled
____기타 커스텀 매처
__정리

4 비동기 테스팅: AJAX
__시나리오 설정
____노드JS 설치
____서버 코딩
____서버 실행
__스펙 작성
____waitsFor() 함수
____runs() 함수
__정리

5 재스민 스파이스
__빈 스파이 함수
__객체 함수에 대한 스파이
__DOM 이벤트 테스팅
__정리

6 광속 단위 테스팅
__재스민 스텁
__시논JS
____시논JS 설치
____페이크 XMLHttpRequest
____페이크 서버
__정리

7 백본 애플리케이션 테스팅
__백본 모델
____백본 모델 선언
____모델 속성
____디폴트 속성값
____이벤트
____동기화와 AJAX 요청
__백본 콜렉션 테스팅
____콜렉션 선언
____동기화와 AJAX 요청
__백본 뷰 테스팅
____뷰 선언
____el 프로퍼티
____렌더링
____모델 변경 시 뷰 업데이트
____DOM 이벤트 바인딩
__백본 라우터 테스팅
____라우터 정의
____경로 정의
____라우터 활용
____라우터는 보내기만 한다
__정리

8 빌드 자동화
__리콰이어JS
____모듈 정의
____프로젝트 설정
________SpecRunner.JS 파일 생성
________RequireJS 설정
____모듈 테스팅
____운영 환경을 위한 최적화
__팬텀JS 헤드리스 테스팅
____팬텀JS 다운로드 및 설치
____브라우저를 열지 않고 테스트
__그런트
____그런트 설치
____프로젝트 설정
____리콰이어JS 옵티마이저 태스크
____재스민 태스크
____변화 감시 및 스펙 실행
__NPM 의존성 관리
__정리

9 마무리

부록 A 제이쿼리 플러그인 테스팅
__정리

부록 B 트래비스 CI를 이용한 지속적 통합
__트래비스 CI에 프로젝트 추가
__프로젝트 설정
__정리

부록 C 재스민 2.0과 미래
__출시 후보 2
__주요 업데이트
__커스텀 매처 생성 문법 개편
__새로운 비동기 스펙 문법
__새로운 스파이 문법
__정리

저자소개

파울로 라고나 [저] 신작알림 SMS신청
생년월일 -

해당작가에 대한 소개가 없습니다.

이일웅 [역] 신작알림 SMS신청
생년월일 -

해당작가에 대한 소개가 없습니다.

이 상품의 시리즈

(총 251권 / 현재구매 가능도서 241권)

선택한 상품 북카트담기
펼쳐보기

전공도서/대학교재 분야에서 많은 회원이 구매한 책

    리뷰

    0.0 (총 0건)

    100자평

    작성시 유의사항

    평점
    0/100자
    등록하기

    100자평

    0.0
    (총 0건)

    판매자정보

    • 인터파크도서에 등록된 오픈마켓 상품은 그 내용과 책임이 모두 판매자에게 있으며, 인터파크도서는 해당 상품과 내용에 대해 책임지지 않습니다.

    상호

    (주)교보문고

    대표자명

    안병현

    사업자등록번호

    102-81-11670

    연락처

    1544-1900

    전자우편주소

    callcenter@kyobobook.co.kr

    통신판매업신고번호

    01-0653

    영업소재지

    서울특별시 종로구 종로 1(종로1가,교보빌딩)

    교환/환불

    반품/교환 방법

    ‘마이페이지 > 취소/반품/교환/환불’ 에서 신청 또는 1:1 문의 게시판 및 고객센터(1577-2555)에서 신청 가능

    반품/교환가능 기간

    변심 반품의 경우 출고완료 후 6일(영업일 기준) 이내까지만 가능
    단, 상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내

    반품/교환 비용

    변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
    상품이나 서비스 자체의 하자로 인한 교환/반품은 반송료 판매자 부담

    반품/교환 불가 사유

    ·소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)

    ·소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등

    ·복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집

    ·시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우

    ·전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우

    상품 품절

    공급사(출판사) 재고 사정에 의해 품절/지연될 수 있음

    소비자 피해보상
    환불지연에 따른 배상

    ·상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨

    ·대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

    (주) 인터파크 안전결제시스템 (에스크로) 안내

    (주)인터파크의 모든 상품은 판매자 및 결제 수단의 구분없이 회원님들의 구매안전을 위해 안전결제 시스템을 도입하여 서비스하고 있습니다.
    결제대금 예치업 등록 : 02-006-00064 서비스 가입사실 확인

    배송안내

    • 교보문고 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다.

    • 출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 상품을 기준으로 배송됩니다.

    • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능합니다.

    • 배송비는 업체 배송비 정책에 따릅니다.

    • - 도서 구매 시, 1만 원 이상 무료, 1만원 미만 2천 원 - 상품별 배송비가 있는 경우, 상품별 배송비 정책 적용