프런트엔드 개발을 위한 테스트 입문

프런트엔드 테스트 기초 지식부터 UI 컴포넌트 테스트, E2E 테스트 등 상황에 맞는 테스트 전략까지
$31.75
SKU
9791193926260
+ Wish
[Free shipping over $100]

Standard Shipping estimated by Wed 04/16 - Tue 04/22 (주문일로부 10-14 영업일)

Express Shipping estimated by Fri 04/11 - Tue 04/15 (주문일로부 7-9 영업일)

* 안내되는 배송 완료 예상일은 유통사/배송사의 상황에 따라 예고 없이 변동될 수 있습니다.
Publication Date 2024/06/21
Pages/Weight/Size 188*245*17mm
ISBN 9791193926260
Categories IT 모바일 > 컴퓨터 공학
Description
지금이라도 알아두면 쓸데 있는 테스트 자동화 전략

최신 웹 애플리케이션에서는 품질과 유지보수성을 위해 테스트 자동화가 중요하지만, 테스트 코드를 작성해본 경험이 없어 테스트 코드 작성을 어려워하는 개발자가 많다. 이 책은 테스트 코드를 처음 작성하는 프런트엔드 개발자를 대상으로, 기본적인 테스트 코드 작성법은 물론 상황별 테스트 코드 작성법, 다양한 도구 사용법까지 풍부한 예제와 함께 설명한다. 특히 타입스크립트, Next.js로 만든 예제를 포함하고 있어 최신 실무 지식과 노하우를 익힐 수 있다. 한국어판 부록으로 깃허브 액션에서의 UI 컴포넌트 테스트와 E2E 테스트를 추가 수록해 완성도를 더욱 높였다.
Contents
옮긴이 머리말 xiii
베타리더 후기 xv
시작하며 xvi
이 책에 대하여 xvii

CHAPTER 1 테스트 목적과 장애물 1

1.1 이 책의 구성 1
1.2 테스트를 작성해야 하는 이유 4
1.3 테스트 작성의 장벽 9

CHAPTER 2 테스트 방법과 테스트 전략 13

2.1 테스트 범위와 목적 13
2.2 프런트엔드 테스트의 범위 15
2.3 프런트엔드 테스트의 목적 18
2.4 테스트 전략 모델 21
2.5 테스트 전략 계획 23

CHAPTER 3 처음 시작하는 단위 테스트 27

3.1 환경 설정 27
3.2 테스트 구성 요소 28
3.3 테스트 실행 방법 31
3.4 조건 분기 35
3.5 에지 케이스와 예외 처리 37
3.6 용도별 매처 43
3.7 비동기 처리 테스트 48

CHAPTER 4 목 객체 53

4.1 목 객체를 사용하는 이유 53
4.2 목 모듈을 활용한 스텁 55
4.3 웹 API 목 객체 기초 59
4.4 웹 API 목 객체 생성 함수 64
4.5 목 함수를 사용하는 스파이 68
4.6 웹 API 목 객체의 세부 사항 72
4.7 현재 시각에 의존하는 테스트 75

CHAPTER 5 UI 컴포넌트 테스트 79

5.1 UI 컴포넌트 테스트 기초 지식 79
5.2 라이브러리 설치 82
5.3 처음 시작하는 UI 컴포넌트 테스트 84
5.4 아이템 목록 UI 컴포넌트 테스트 89
5.5 인터랙티브 UI 컴포넌트 테스트 94
5.6 유틸리티 함수를 활용한 테스트 101
5.7 비동기 처리가 포함된 UI 컴포넌트 테스트 108
5.8 UI 컴포넌트 스냅숏 테스트 114
5.9 암묵적 역할과 접근 가능한 이름 118

CHAPTER 6 커버리지 리포트 읽기 125

6.1 커버리지 리포트 개요 125
6.2 커버리지 리포트 읽기 127
6.3 커스텀 리포터 132

CHAPTER 7 웹 애플리케이션 통합 테스트 135

7.1 Next.js 애플리케이션 개발과 통합 테스트 135
7.2 React Context와 통합 테스트 137
7.3 Next.js 라우터와 렌더링 통합 테스트 141
7.4 Next.js 라우터와 입력 통합 테스트 145
7.5 React Hook Form으로 폼 쉽게 다루기 149
7.6 폼 유효성 검사 테스트 151
7.7 웹 API 응답을 목 객체화하는 MSW 159
7.8 웹 API 통합 테스트 161
7.9 이미지 업로드 통합 테스트 167

CHAPTER 8 UI 컴포넌트 탐색기 175

8.1 스토리북 기초 175
8.2 스토리북 필수 애드온 180
8.3 Context API에 의존하는 스토리 등록 185
8.4 웹 API에 의존하는 스토리 등록 188
8.5 Next.js Router에 의존하는 스토리 등록 192
8.6 play function을 활용한 인터랙션 테스트 193
8.7 addon-a11y를 활용한 접근성 테스트 198
8.8 스토리북 테스트 러너 202
8.9 스토리를 통합 테스트에 재사용하기 207

CHAPTER 9 시각적 회귀 테스트 211

9.1 시각적 회귀 테스트의 필요성 211
9.2 reg-cli로 이미지 비교하기 214
9.3 스토리캡 도입 218
9.4 reg-suit 도입하기 222
9.5 외부 스토리지 서비스 설정 228
9.6 깃허브 액션에 reg-suit 연동하기 232
9.7 시각적 회귀 테스트를 활용한 적극적 리팩터링 236

CHAPTER 10 E2E 테스트 239

10.1 E2E 테스트란 239
10.2 플레이라이트 설치 및 기초 242
10.3 테스트할 애플리케이션 246
10.4 개발 환경에서 E2E 테스트 실행하기 250
10.5 프리즈마를 활용한 테스트 254
10.6 로그인 기능 E2E 테스트 259
10.7 프로필 기능 E2E 테스트 263
10.8 Like 기능 E2E 테스트 266
10.9 신규 작성 페이지 E2E 테스트 269
10.10 기사 편집 페이지 E2E 테스트 272
10.11 게재된 기사 목록 페이지 E2E 테스트 275
10.12 불안정한 테스트 대처 방법 278

APPENDIX A 한국어판 부록: 깃허브 액션에서 UI 컴포넌트 테스트 실행하기 281

A.1 깃허브 액션 핸즈온 281
A.2 워크플로 파일 작성법 288
A.3 작업을 병렬처리해서 워크플로 최적화하기 291

APPENDIX B 한국어판 부록: 깃허브 액션에서 E2E 테스트 실행하기 299

B.1 깃허브 액션에서 E2E 테스트 실행하기 299
B.2 도커파일 작성법 301
B.3 도커 컴포즈 파일 작성법 304

찾아보기 310
Author
요시이 다케후미,원밀리언라인즈코딩(배언수)
프런트엔드 엔지니어. 프런트엔드 개발 현장의 실무 노하우를 웹사이트(https://zenn.dev/takepepe)에 올리고 있으며, 잡지 《WEB+DB PRESS》에 글을 기고하기도 한다. 저서로 《??TypeScript(실전 타입스크립트)》, 《??Next.js(실전 Next.js)》가 있다.
프런트엔드 엔지니어. 프런트엔드 개발 현장의 실무 노하우를 웹사이트(https://zenn.dev/takepepe)에 올리고 있으며, 잡지 《WEB+DB PRESS》에 글을 기고하기도 한다. 저서로 《??TypeScript(실전 타입스크립트)》, 《??Next.js(실전 Next.js)》가 있다.